diff --git a/.github/workflows/create_rc.yml b/.github/workflows/create_rc.yml index 9cf011e07e..0f75a00b11 100644 --- a/.github/workflows/create_rc.yml +++ b/.github/workflows/create_rc.yml @@ -17,6 +17,16 @@ on: - true - false +env: + CACHE_REGISTRY: ghcr.io + CACHE_REPO: linode/apl-core + REPO: linode/apl-core + DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_LINODEBOT_TOKEN }} + DOCKER_USERNAME: ${{ vars.DOCKERHUB_LINODEBOT_USERNAME }} + DEV_KUBECONFIG_64: ${{ secrets.DEV_KUBECONFIG }} + BOT_EMAIL: ${{ vars.BOT_EMAIL }} + BOT_USERNAME: ${{ vars.BOT_USERNAME }} + jobs: create_patch_release: runs-on: ubuntu-22.04 @@ -27,24 +37,16 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - - - name: Determine commit from where to create the RC - id: determine_commit - run: | - if [ -n "${{ github.event.inputs.rc_commit_sha }}" ]; then - commit_sha="${{ github.event.inputs.rc_commit_sha }}" - echo "Using provided commit sha: $commit_sha" - echo "commit_sha=$commit_sha" >> $GITHUB_ENV - else - commit_sha=$(git rev-parse HEAD) - echo "No commit sha provided, using the latest commit on main: $commit_sha" - echo "commit_sha=$commit_sha" >> $GITHUB_ENV - fi + # Checkout inputs.rc_commit_sha or main if not provided + ref: ${{ github.event.inputs.rc_commit_sha || 'main' }} - uses: actions/setup-node@v4 with: node-version: '20' + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Install dependencies run: | npm install standard-version @@ -53,17 +55,51 @@ jobs: id: create_release env: DRY_RUN: ${{ github.event.inputs.dry_run }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - COMMIT_SHA: ${{ env.commit_sha }} - BOT_EMAIL: ${{ vars.BOT_EMAIL }} - BOT_USERNAME: ${{ vars.BOT_USERNAME }} + GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }} + COMMIT_SHA: ${{ github.event.inputs.rc_commit_sha || 'main' }} run: | ci/scripts/create_rc.sh + - name: Set environment variables + run: | + TAG=v$( jq -r '.version' package.json) + echo "Creating TAG: $TAG" + echo "TAG=$TAG" >> $GITHUB_ENV + git config --global user.email $BOT_EMAIL + git config --global user.name $BOT_USERNAME + + - name: Login to Github Packages + uses: docker/login-action@v3 + with: + registry: ${{ env.CACHE_REGISTRY }} + username: ${{ env.BOT_USERNAME }} + password: '${{ secrets.BOT_TOKEN }}' + + - name: CI tests, image build and push tag rc branch + if: ${{ github.event.inputs.dry_run == 'false' }} + uses: docker/build-push-action@v6 + with: + push: true + context: . + tags: | + ${{ env.CACHE_REGISTRY }}/${{ env.CACHE_REPO }}:${{ env.TAG }} + + - name: Push to docker hub + if: ${{ github.event.inputs.dry_run == 'false' }} + id: push-to-docker + run: | + set -u + docker login ghcr.io -u $BOT_USERNAME -p ${{ secrets.BOT_TOKEN }} + image="$CACHE_REGISTRY/$CACHE_REPO:${{ env.TAG }}" + docker pull $image + docker tag $image $REPO:${{ env.TAG }} + docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD + docker push $REPO:${{ env.TAG }} + + # - name: Deploy to staging // TODO: support staging env + # run: ci/scripts/trigger_dev.sh + - name: Prepare chart - env: - BOT_EMAIL: ${{ vars.BOT_EMAIL }} - BOT_USERNAME: ${{ vars.BOT_USERNAME }} id: prepare_chart run: | ci/scripts/prepare_chart_for_release.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8aa497b2ff..b0355729c2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,6 +3,7 @@ on: push: branches: - '**' + - '!rc/**' tags-ignore: - '*' env: diff --git a/.github/workflows/patch_rc.yml b/.github/workflows/patch_rc.yml index 4fd0ac7a88..bb75671020 100644 --- a/.github/workflows/patch_rc.yml +++ b/.github/workflows/patch_rc.yml @@ -29,7 +29,7 @@ jobs: git -P log --pretty=format:"%s" "${LATEST_TAG}..HEAD" COMMITS=$(git log --pretty=format:"%s" "${LATEST_TAG}..HEAD") - if [[ $COMMITS == *"feat:"* || $COMMITS == *"fix:"* ]]; then + if [[ $COMMITS == *"feat:"* || $COMMITS == *"fix:"* || $COMMITS == *"chore(versions):"*]]; then echo "RC_RELEASE=true" >> $GITHUB_ENV else echo "No feat/fix commits found. Skipping release." diff --git a/package.json b/package.json index 38cbc67d1f..14aeaec4e2 100644 --- a/package.json +++ b/package.json @@ -168,11 +168,6 @@ "bootstrap-dev-with-repo": "CI=1 ENV_DIR=/tmp/otomi-bootstrap-dev binzx/otomi bootstrap", "bootstrap-tests-fixtures": "CI=1 ENV_DIR=$PWD/tests/fixtures binzx/otomi bootstrap" }, - "standard-version": { - "skip": { - "tag": true - } - }, "type": "commonjs", "version": "4.6.0" }