Bump CLI (#165) #128
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Deploy Go to Kubernetes | |
on: | |
push: | |
branches: [trunk] | |
## Adding a path filter will only trigger the workflow if the files in the path are modified. | |
## This is very useful if you have a monorepo structure. | |
## See https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore for more information. | |
## | |
# paths: | |
# - 'applications/my-app/**' | |
## | |
# pull_request: | |
# branches: [trunk] | |
env: | |
APPLICATION_NAME: 'demo-api-go' | |
SYSTEM_NAME: 'core' | |
HELM_VALUES_FILE: '.github/test-go/deploy/values.yml' | |
PROJECT_FILE: '.github/test-go/go.mod' | |
jobs: | |
analyze: | |
name: Analyze | |
runs-on: elvia-runner | |
permissions: | |
actions: read | |
contents: read | |
security-events: write | |
# Limits the number of concurrent runs of this job to one, and cancels any in progress. | |
concurrency: | |
group: '${{ github.workflow }}-${{ github.ref }}-analyze' | |
cancel-in-progress: true | |
steps: | |
- uses: 3lvia/core-github-actions-templates/analyze@trunk | |
with: | |
# This can be set to a more specific path if you want to analyze only a part of the repository. | |
working-directory: '.' | |
build-scan: | |
name: Build and Scan | |
runs-on: elvia-runner | |
permissions: | |
actions: read | |
contents: write | |
id-token: write | |
pull-requests: write | |
security-events: write | |
# Limits the number of concurrent runs of this job to one, and cancels any in progress. | |
concurrency: | |
group: '${{ github.workflow }}-${{ github.ref }}-build-scan' | |
cancel-in-progress: true | |
environment: build | |
steps: | |
- uses: 3lvia/core-github-actions-templates/build@trunk | |
with: | |
name: ${{ env.APPLICATION_NAME }} | |
namespace: ${{ env.SYSTEM_NAME }} | |
project-file: ${{ env.PROJECT_FILE }} | |
trivy-upload-report: 'true' | |
trivy-post-comment: 'true' | |
AZURE_CLIENT_ID: ${{ vars.ACR_CLIENT_ID }} | |
deploy-dev: | |
name: Deploy Dev | |
# Require all jobs below to be successful before running this job. | |
# Any of these can be commented out or removed if you want to deploy anyway. | |
needs: | |
- build-scan | |
- analyze | |
runs-on: elvia-runner | |
permissions: | |
contents: read | |
id-token: write | |
# Limits the number of concurrent runs of this job to one, but DOES NOT cancel any in progress. | |
concurrency: | |
group: 'dev-azure--this-block-is-removed-in-final-example-needs-this-to-not-deploy-demo-api-go-simultaneously-in-two-examples' | |
environment: dev | |
steps: | |
- uses: 3lvia/core-github-actions-templates/deploy@trunk | |
with: | |
name: ${{ env.APPLICATION_NAME }} | |
namespace: ${{ env.SYSTEM_NAME }} | |
environment: 'dev' | |
helm-values-file: ${{ env.HELM_VALUES_FILE }} | |
# Will post to the Slack channel of your system if the deployment fails. | |
# Can be commented out if you don't want this. | |
slack-channel: '#team-${{ env.SYSTEM_NAME }}-alerts' | |
AZURE_CLIENT_ID: ${{ vars.AKS_CLIENT_ID }} | |
deploy-test: | |
name: Deploy Test | |
# Only deploy to test after dev | |
needs: [deploy-dev] | |
runs-on: elvia-runner | |
permissions: | |
contents: read | |
id-token: write | |
# Limits the number of concurrent runs of this job to one, but DOES NOT cancel any in progress. | |
concurrency: | |
group: 'test-azure--this-block-is-removed-in-final-example-needs-this-to-not-deploy-demo-api-go-simultaneously-in-two-examples' | |
environment: test | |
# Only on push to trunk | |
if: github.ref == 'refs/heads/trunk' | |
steps: | |
- uses: 3lvia/core-github-actions-templates/deploy@trunk | |
with: | |
name: ${{ env.APPLICATION_NAME }} | |
namespace: ${{ env.SYSTEM_NAME }} | |
environment: 'test' | |
helm-values-file: ${{ env.HELM_VALUES_FILE }} | |
# Will post to the Slack channel of your system if the deployment fails. | |
# Can be commented out if you don't want this. | |
slack-channel: '#team-${{ env.SYSTEM_NAME }}-alerts' | |
AZURE_CLIENT_ID: ${{ vars.AKS_CLIENT_ID }} | |
deploy-prod: | |
name: Deploy Prod | |
# Only deploy to prod after test | |
needs: [deploy-test] | |
runs-on: elvia-runner | |
permissions: | |
contents: read | |
id-token: write | |
# Limits the number of concurrent runs of this job to one, but DOES NOT cancel any in progress. | |
concurrency: | |
group: 'prod-azure--this-block-is-removed-in-final-example-needs-this-to-not-deploy-demo-api-go-simultaneously-in-two-examples' | |
environment: prod | |
# Only on push to trunk | |
if: github.ref == 'refs/heads/trunk' | |
steps: | |
- uses: 3lvia/core-github-actions-templates/deploy@trunk | |
with: | |
name: ${{ env.APPLICATION_NAME }} | |
namespace: ${{ env.SYSTEM_NAME }} | |
environment: 'prod' | |
helm-values-file: ${{ env.HELM_VALUES_FILE }} | |
# Will post to the Slack channel of your system if the deployment fails. | |
# Can be commented out if you don't want this. | |
slack-channel: '#team-${{ env.SYSTEM_NAME }}-alerts' | |
AZURE_CLIENT_ID: ${{ vars.AKS_CLIENT_ID }} |