From 4281b27ad0cd67e0c8cd070ff5d98bbcbe77c0ae Mon Sep 17 00:00:00 2001 From: Zac King Date: Fri, 16 Feb 2024 16:01:38 +0000 Subject: [PATCH] feat: use semantic versioning --- .github/workflows/create-tag-release-test.yml | 48 ---------- .github/workflows/deploy-image.yml | 88 ++++++++----------- 2 files changed, 37 insertions(+), 99 deletions(-) delete mode 100644 .github/workflows/create-tag-release-test.yml diff --git a/.github/workflows/create-tag-release-test.yml b/.github/workflows/create-tag-release-test.yml deleted file mode 100644 index 4c016cc3b..000000000 --- a/.github/workflows/create-tag-release-test.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Create & Tag Release TEST - -# TODO: Remove this workflow after testing and replace the create-tag-release job in deploy-image with this one! - -on: - pull_request: - branches: ["development"] - paths: - - ".github/workflows/create-tag-release-test.yml" - -jobs: - create-tag-release: - runs-on: ubuntu-22.04 - name: Tag & Create Release - permissions: - contents: write - issues: write - pull-requests: write - id-token: write - - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 - persist-credentials: false - - - name: Setup Node.JS - uses: actions/setup-node@v4 - with: - node-version: "lts/*" - - - name: Install Dependencies - run: | - npm i npx@10 - npm i @semantic-release/commit-analyzer@11 - npm i @semantic-release/release-notes-generator@12 - npm i @semantic-release/github@9 - npm i @semantic-release/exec@6 - - - name: Verify Integrity of Installed Dependencies - run: npm audit signatures - - - name: Create Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npx semantic-release@23 --dry-run --branches development # TODO: Replace with commented line after testing - # run: npx semantic-release --dry-run --branches ${{ inputs.branch }} # TODO: Remove --dry-run after testing diff --git a/.github/workflows/deploy-image.yml b/.github/workflows/deploy-image.yml index a09840219..99af8aeb2 100644 --- a/.github/workflows/deploy-image.yml +++ b/.github/workflows/deploy-image.yml @@ -25,56 +25,47 @@ env: ORG_NAME: dfe-digital jobs: - set-env: # TODO: Possibly remove after testing + create-tag-release: runs-on: ubuntu-22.04 - name: Set Environment (Deploy Image) - outputs: - release: ${{ steps.var.outputs.release }} + name: Tag & Create Release + permissions: + contents: write + issues: write + pull-requests: write + id-token: write + steps: - - id: var + - name: Checkout Repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + persist-credentials: false + + - name: Setup Node.JS + uses: actions/setup-node@v4 + with: + node-version: "lts/*" + + - name: Install Dependencies run: | - RELEASE=${{ inputs.environment }}-`date +%Y-%m-%d`.${{ github.run_number }} - echo "release=${RELEASE}" >> $GITHUB_OUTPUT - - # create-tag-release: # TODO: Replace after testing - # runs-on: ubuntu-22.04 - # name: Tag & Create Release - # needs: set-env - - # steps: - # - uses: actions/checkout@v4 - # with: - # ref: ${{ github.ref }} - - # - name: Create Tag - # run: | - # git tag ${{ needs.set-env.outputs.release }} - # git push origin ${{ needs.set-env.outputs.release }} - - # - name: Create Release - # uses: actions/github-script@v7 - # with: - # github-token: "${{ secrets.GITHUB_TOKEN }}" - # script: | - # try { - # await github.rest.repos.createRelease({ - # draft: ${{ inputs.environment == 'staging' }}, - # generate_release_notes: true, - # name: "${{ needs.set-env.outputs.release }}", - # owner: context.repo.owner, - # prerelease: ${{ inputs.environment == 'staging' }}, - # repo: context.repo.repo, - # tag_name: "${{ needs.set-env.outputs.release }}", - # }); - # } catch (error) { - # core.setFailed(error.message); - # } + npm i npx@10 + npm i @semantic-release/commit-analyzer@11 + npm i @semantic-release/release-notes-generator@12 + npm i @semantic-release/github@9 + npm i @semantic-release/exec@6 + + - name: Verify Integrity of Installed Dependencies + run: npm audit signatures + + - name: Create Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npx semantic-release@23 --branches ${{ inputs.branch }} upgrade-database: runs-on: ubuntu-22.04 name: Update Database for ${{ inputs.environment }} environment: ${{ inputs.environment }} - needs: set-env steps: - uses: actions/checkout@v4 @@ -105,7 +96,7 @@ jobs: runs-on: ubuntu-22.04 name: Pull Image From GitHub Container Registry and Publish to Azure Container Registry environment: ${{ inputs.environment }} - needs: [set-env, upgrade-database] + needs: upgrade-database steps: - name: GitHub Container Registry Login @@ -132,9 +123,9 @@ jobs: deploy-image: runs-on: ubuntu-22.04 - name: Deploy Image To ${{ inputs.environment }} (${{ needs.set-env.outputs.release }}) + name: Deploy Image To ${{ inputs.environment }} environment: ${{ inputs.environment }} - needs: [set-env, upgrade-database, pull-image-from-gcr-and-publish-to-acr] + needs: [upgrade-database, pull-image-from-gcr-and-publish-to-acr] steps: - uses: actions/checkout@v4 @@ -169,12 +160,7 @@ jobs: if: ${{ inputs.environment == 'tst' || inputs.environment == 'staging' }} environment: ${{ inputs.environment }} needs: - [ - set-env, - upgrade-database, - pull-image-from-gcr-and-publish-to-acr, - deploy-image, - ] + [upgrade-database, pull-image-from-gcr-and-publish-to-acr, deploy-image] env: az_keyvault_name: ${{ secrets.AZ_ENVIRONMENT }}${{ secrets.DFE_PROJECT_NAME }}-kv az_keyvault_database_connectionstring_name: ${{ secrets.AZ_KEYVAULT_DATABASE_CONNECTIONSTRING_NAME }}