chore(deps): pin dependencies #608
This file contains hidden or 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 & Deploy Spring Boot EL API to OpenShift | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened, closed] | |
| branches: | |
| - main | |
| paths: | |
| - 'backend-el/**' | |
| - 'charts/**' | |
| - '.github/workflows/build-deploy-el-openshift.yml' | |
| workflow_dispatch: | |
| inputs: | |
| environment: | |
| description: 'Environment to deploy to OpenShift' | |
| required: true | |
| default: 'dev' | |
| type: choice | |
| options: | |
| - dev | |
| - prod | |
| workflow_call: | |
| inputs: | |
| environment: | |
| required: true | |
| type: string | |
| description: 'Environment to deploy to OpenShift' | |
| default: 'dev' | |
| jobs: | |
| triggers: | |
| name: Triggers | |
| if: github.event.action != 'closed' | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| triggered: ${{ steps.diff_triggers.outputs.triggered }} | |
| steps: | |
| - uses: bcgov/action-diff-triggers@v0.2.0 | |
| id: diff_triggers | |
| with: | |
| triggers: ('.github/workflows/build-deploy-el-openshift.yml' 'backend-el' 'charts/backend-el') | |
| build: | |
| name: Build Spring Boot Oracle EL Containers | |
| needs: [triggers] | |
| if: (always() && (needs.triggers.outputs.triggered == 'true' || github.event_name == 'workflow_dispatch') && (github.event.action != 'closed') && (!github.event.pull_request.draft)) | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| package: ['backend-el'] | |
| include: | |
| - package: 'backend-el' | |
| build_file: ./backend-el/Dockerfile | |
| build_context: ./backend-el | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: bcgov/action-builder-ghcr@v4.4.1 | |
| with: | |
| package: ${{ matrix.package }} | |
| tags: ${{ github.sha }} | |
| build_file: ${{ matrix.build_file }} | |
| build_context: ${{ matrix.build_context }} | |
| deploy: | |
| name: Deploy Helm Chart to OpenShift ${{ github.event.inputs.environment }} | |
| needs: [build] | |
| # Deploy to prod if PR is merged | |
| environment: openshift-${{ github.event.inputs.environment || (github.event.action == 'closed' && 'prod') || 'dev' }} | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Helm Deploy | |
| id: deploy | |
| uses: bcgov/action-oc-runner@v1.7.0 | |
| env: | |
| DB_PASSWORD: ${{ secrets.DBPASSWORD }} # handle special characters. | |
| with: | |
| oc_namespace: ${{ secrets.OC_NAMESPACE }} | |
| oc_token: ${{ secrets.OC_TOKEN }} | |
| oc_server: ${{ vars.oc_server }} | |
| ref: ${{ github.head_ref}} | |
| commands: | | |
| # Deploy | |
| cd charts/backend-el | |
| SECRET_PERSIST=true | |
| PVC_SIZE="500Mi" | |
| # if event is PR then use a different bucket | |
| if [ "${{ github.event_name }}" == "pull_request" ]; then | |
| export AWS_LZA_S3_BUCKET="fta-rec-rst-lza-uploads" | |
| export RELEASE_NAME="backend-el-pr-${{ github.event.number }}" | |
| SECRET_PERSIST=false | |
| PVC_SIZE="200Mi" | |
| else | |
| export AWS_LZA_S3_BUCKET="${{ secrets.AWS_LZA_S3_BUCKET }}" | |
| export RELEASE_NAME="backend-el" | |
| fi | |
| export FLYWAY_TASK_LZA_CONFIGS="${{ secrets.FLYWAY_TASK_LZA_CONFIGS }}" | |
| helm package -u . --app-version="${{ github.sha }}" --version=1.0.0 | |
| helm upgrade \ | |
| --set-string image.tag="${{ github.sha }}" \ | |
| --set-string secrets.dbHost="${{ secrets.DBHOST }}" \ | |
| --set-string secrets.dbName="${{ secrets.DBNAME }}" \ | |
| --set-string secrets.dbPassword="$DB_PASSWORD" \ | |
| --set-string secrets.dbUser="${{ secrets.DBUSER }}" \ | |
| --set-string config.awsS3Bucket="$AWS_LZA_S3_BUCKET" \ | |
| --set-string schedule="${{ secrets.SCHEDULE }}" \ | |
| --set-string secrets.flywayTaskConfigs="${FLYWAY_TASK_LZA_CONFIGS}" \ | |
| --set secrets.persist=$SECRET_PERSIST \ | |
| --set-string pvc.size="$PVC_SIZE" \ | |
| --install --wait \ | |
| --values values.yaml "$RELEASE_NAME"\ | |
| ./backend-el-1.0.0.tgz | |
| if [ "${{ github.event_name }}" == "pull_request" ]; then | |
| oc create job $RELEASE_NAME-daily-${{github.run_number}} --from=cronjob/$RELEASE_NAME-daily | |
| oc wait --for=condition=complete --timeout=600s job/$RELEASE_NAME-daily-${{github.run_number}} | |
| fi | |
| clean_up: | |
| name: Clean up | |
| if: github.event_name=='pull_request' && github.event.action == 'closed' | |
| environment: openshift-${{ github.event.inputs.environment || 'dev' }} | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Helm Uninstall on PR close | |
| id: helm-uninstall | |
| uses: bcgov/action-oc-runner@v1.7.0 | |
| with: | |
| oc_namespace: ${{ secrets.OC_NAMESPACE }} | |
| oc_token: ${{ secrets.OC_TOKEN }} | |
| oc_server: ${{ vars.oc_server }} | |
| commands: | | |
| # Helm Uninstall | |
| helm uninstall backend-el-pr-${{ github.event.number }} || true |