Skip to content

Commit

Permalink
feat: release-please refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
cberg-aot committed Sep 17, 2024
1 parent 5517651 commit 43a4372
Show file tree
Hide file tree
Showing 6 changed files with 138 additions and 87 deletions.
76 changes: 9 additions & 67 deletions .github/workflows/merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,6 @@ on:
- '!.github/workflows/deploy.yml'
- '!.github/workflows/merge.yml'
workflow_dispatch:
inputs:
pr_no:
description: "PR-numbered container set to deploy"
type: number
required: true

concurrency:
group: ${{ github.workflow }}
Expand All @@ -34,22 +29,12 @@ jobs:
uses: bcgov-nr/[email protected]

deploys-test:
name: Deploys (test)
name: Deploys (Test)
needs: [vars]
uses: ./.github/workflows/deploy.yml
uses: ./.github/workflows/uat.yml
secrets: inherit
with:
autoscaling: true
environment: test
release: test
tag: ${{ needs.vars.outputs.pr }}
params: |
--set-string global.license='c28f0c' \
--set-string global.zone='test' \
--set-string global.vault.role='nonprod' \
--set-string global.vault.zone='test' \
--set-string global.pr_num='${{ needs.vars.outputs.pr }}' \
tag: ${{ needs.vars.outputs.release-name }}

promote-images-test:
name: Promote Images - Test
Expand All @@ -69,57 +54,14 @@ jobs:
target: ${{ needs.vars.outputs.pr }}
tags: test #Promote images AFTER successful deploy

deploys-prod:
name: Deploys (prod)
release-please:
name: Release-Please
needs: [promote-images-test, vars]
uses: ./.github/workflows/deploy.yml
secrets: inherit
with:
autoscaling: true
environment: prod
tag: ${{ needs.vars.outputs.pr }}
release: prod
params: |
--set-string global.license='c28f0c' \
--set-string global.zone='prod' \
--set-string global.vault.role='prod' \
--set-string global.vault.zone='prod' \
--set-string global.pr_num='${{ needs.vars.outputs.pr }}' \
promote-images-prod:
name: Promote Images - Prod
needs: [deploys-prod, vars]
runs-on: ubuntu-22.04
permissions:
packages: write
strategy:
matrix:
package: [dops, vehicles, frontend, scheduler, policy]
timeout-minutes: 2
steps:
- uses: shrink/actions-docker-registry-tag@v4
- uses: google-github-actions/release-please-action@v3
with:
registry: ghcr.io
repository: ${{ github.repository }}/${{ matrix.package }}
target: ${{ needs.vars.outputs.pr }}
tags: prod #Promote images AFTER successful deploy

create-release:
name: Create release
runs-on: ubuntu-22.04
needs: [deploys-prod, vars]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Generate release tag
id: generate_release_tag
shell: bash
run: |
echo next_release_tag=$(expr $(echo $(curl https://api.github.com/repos/bcgov/onroutebc/releases/latest | grep tag_name | cut -d '-' -f3 - | cut -d '"' -f1 -) + 1)) >> $GITHUB_OUTPUT
- name: Create Release
run: |
gh release create "${{ github.event.repository.name }}-release-${{ steps.generate_release_tag.outputs.next_release_tag }}" \
--repo=${{ github.repository }} \
--title="${{ github.event.repository.name }}-release-${{ steps.generate_release_tag.outputs.next_release_tag }}" \
--generate-notes
release-type: simple
package-name: release-please-action
changelog-types: '[{"type":"ORV2","section":"Features","hidden":false},{"type":"feat","section":"Features","hidden":false},{"type":"fix","section":"Bug Fixes","hidden":false},{"type":"build","section":"Miscellaneous","hidden":false},{"type":"chore","section":"Miscellaneous","hidden":false},{"type":"ci","section":"Miscellaneous","hidden":false},{"type":"docs","section":"Miscellaneous","hidden":false},{"type":"perf","section":"Miscellaneous","hidden":false},{"type":"refactor","section":"Miscellaneous","hidden":false},{"type":"revert","section":"Miscellaneous","hidden":false},{"type":"style","section":"Miscellaneous","hidden":false},{"type":"test","section":"Miscellaneous","hidden":false}]'
38 changes: 38 additions & 0 deletions .github/workflows/prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Deploy Prod

on:
workflow_dispatch:
inputs:
tag:
description: "Image tag to deploy"
required: false
type: string
default: "prod"
workflow_run:
inputs:
tag:
description: "Image tag to deploy"
required: false
type: string
default: "prod"

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true

jobs:
deploys-prod:
name: Deploys (prod)
uses: ./.github/workflows/deploy.yml
secrets: inherit
with:
autoscaling: true
environment: prod
tag: ${{ inputs.tag }}
release: prod
params: |
--set-string global.license='c28f0c' \
--set-string global.zone='prod' \
--set-string global.vault.role='prod' \
--set-string global.vault.zone='prod' \
--set-string global.pr_num='${{ inputs.tag }}' \
34 changes: 34 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Release

on:
release:
types: [published]
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true

jobs:
vars:
name: Set Variables
outputs:
release-name: ${{ steps.release-name.outputs.release-name }}
runs-on: ubuntu-22.04
timeout-minutes: 1
steps:
# Get PR number for squash merges to main
- name: Release Name
id: release-name
run: |
echo release-name=$(curl https://api.github.com/repos/bcgov/onroutebc/releases/latest | jq -r .tag_name)
deploys-uat:
name: Deploys (uat)
needs: [vars]
uses: ./.github/workflows/uat.yml
secrets: inherit
with:
environment: test
tag: ${{ needs.vars.outputs.release-name }}
40 changes: 40 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: Deploy Test

on:
workflow_dispatch:
inputs:
tag:
description: "Image tag to deploy"
required: false
type: string
default: "test"
workflow_run:
inputs:
tag:
description: "Image tag to deploy"
required: false
type: string
default: "test"


concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true

jobs:
deploy-test:
name: Deploys (test)
uses: ./.github/workflows/deploy.yml
secrets: inherit
with:
autoscaling: true
environment: test
release: test
tag: ${{ inputs.tag }}
params: |
--set-string global.license='c28f0c' \
--set-string global.zone='test' \
--set-string global.vault.role='nonprod' \
--set-string global.vault.zone='test' \
--set-string global.pr_num='${{ inputs.tag }}' \
36 changes: 16 additions & 20 deletions .github/workflows/uat.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
---
name: Deploy UAT

on:
workflow_dispatch:
inputs:
environment:
description: "Deployment environment - test --> vault secrets"
required: true
type: choice
options: ["test","tools"]
tag:
description: "Image tag to deploy"
required: false
type: string
default: "test"
workflow_run:
inputs:
tag:
description: "Image tag to deploy"
required: false
type: string
default: "test"


Expand All @@ -16,29 +23,18 @@ concurrency:
cancel-in-progress: true

jobs:
uninstall-uat:
name: Uninstall (uat)
environment: ${{inputs.environment}}
runs-on: ubuntu-22.04
steps:
- name: uninstall
run: |
oc login --token=${{ secrets.oc_token }} --server=${{ secrets.oc_server }}
oc project ${{ secrets.OC_NAMESPACE }} # Safeguard!
helm uninstall onroutebc-uat || true
deploy-uat:
name: Deploys (UAT)
uses: ./.github/workflows/deploy.yml
needs: uninstall-uat
secrets: inherit
with:
autoscaling: true
environment: ${{inputs.environment}}
tag: "test"
release: "uat"
environment: test
tag: ${{inputs.tag}}
release: uat
params: |
--set-string global.license='c28f0c' \
--set-string global.zone='test' \
--set-string global.vault.role='nonprod' \
--set-string global.vault.zone='uat' \
--set-string global.pr_num='${{ needs.vars.outputs.pr }}' \
--set-string global.pr_num='${{ inputs.tag }}' \
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -119,3 +119,4 @@ Chart.lock

#Loadtest Results
loadtests/results
loadtests/*/results

0 comments on commit 43a4372

Please sign in to comment.