fix: the pipeline and release process as we have pr numbers now as part of merge #21
Workflow file for this run
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: PR | |
on: | |
pull_request: | |
merge_group: | |
concurrency: | |
# Cancel in progress for PR open and close, but not merge_group | |
group: ${{ github.workflow }}-${{ github.event.number || github.event.merge_group.base_sha }} | |
cancel-in-progress: true | |
jobs: | |
builds: | |
name: Builds | |
if: '!github.event.pull_request.head.repo.fork' | |
runs-on: ubuntu-22.04 | |
permissions: | |
packages: write | |
strategy: | |
matrix: | |
package: [nr-oracle-service, nr-oracle-service-init] | |
include: | |
- package: nr-oracle-service | |
build_file: Dockerfile | |
build_context: . | |
triggers: ('src/' 'pom.xml') | |
- package: nr-oracle-service-init | |
build_file: Dockerfile.certs | |
build_context: . | |
triggers: ('get_certs.sh' 'Dockerfile.certs') | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: bcgov-nr/action-builder-ghcr@v2.0.1 | |
with: | |
package: ${{ matrix.package }} | |
tag: ${{ github.event.number }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
build_file: ${{ matrix.build_file }} | |
build_context: ${{ matrix.build_context }} | |
triggers: ${{ matrix.triggers }} | |
deploys: | |
name: Deploys | |
needs: | |
- builds | |
runs-on: ubuntu-22.04 | |
environment: test | |
env: | |
project_name: nr-oracle | |
app_name: nr-oracle-service | |
environment: development | |
secret_path_env: dev # this path is different from the path in the broker | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Broker | |
id: broker | |
uses: bcgov-nr/action-vault-broker-approle@v1.1.0 | |
with: | |
broker_jwt: ${{ secrets.BROKER_JWT }} | |
provision_role_id: ${{ secrets.PROVISION_ROLE }} | |
project_name: ${{ env.project_name }} | |
app_name: ${{ env.app_name }} | |
environment: ${{ env.environment }} | |
- name: Import Secrets | |
id: secrets | |
uses: hashicorp/vault-action@v2.7.5 | |
with: | |
url: https://vault-iit.apps.silver.devops.gov.bc.ca | |
token: ${{ steps.broker.outputs.vault_token }} | |
exportEnv: 'true' | |
secrets: | | |
apps/data/${{ env.secret_path_env }}/${{ env.project_name }}/${{ env.app_name }}/rar dbHost | DB_HOST; | |
apps/data/${{ env.secret_path_env }}/${{ env.project_name }}/${{ env.app_name }}/rar dbName | DB_NAME; | |
apps/data/${{ env.secret_path_env }}/${{ env.project_name }}/${{ env.app_name }}/rar dbPassword | DB_PWD; | |
apps/data/${{ env.secret_path_env }}/${{ env.project_name }}/${{ env.app_name }}/rar dbUser | DB_USER; | |
- name: Deploy to Openshift | |
working-directory: charts/nr-oracle-service | |
shell: bash | |
run: | | |
oc login --token=${{ secrets.oc_token }} --server=${{ vars.oc_server }} | |
oc project ${{ vars.OC_NAMESPACE }} # Safeguard! | |
# uninstall if found | |
helm uninstall ${{ github.event.repository.name }}-${{ github.event.number }} || true | |
# Deploy Helm Chart | |
helm dependency update | |
helm package --app-version="${{ github.event.number }}" --version=${{ github.event.number }} . | |
helm upgrade \ | |
--set-string app.envs.DB_HOST=${{ steps.secrets.outputs.DB_HOST }} \ | |
--set-string app.envs.DB_NAME=${{ steps.secrets.outputs.DB_NAME }} \ | |
--set-string app.envs.DB_PASSWORD=${{ steps.secrets.outputs.DB_PWD }} \ | |
--set-string app.envs.DB_USER=${{ steps.secrets.outputs.DB_USER }} \ | |
--set-string app.envs.DB_PORT="1543" \ | |
--set-string image.tag="${{ github.event.number }}" \ | |
--set-string namespace=${{ vars.oc_namespace }} \ | |
--install --wait --atomic ${{ github.event.repository.name }}-${{ github.event.number }} \ | |
--values values.yaml \ | |
./${{ github.event.repository.name }}-${{ github.event.number }}.tgz | |
# print history | |
helm history ${{ github.event.repository.name }}-${{ github.event.number }} | |
# Remove old build runs, build pods and deployment pods | |
oc delete po --field-selector=status.phase==Succeeded |