Release - Deploy all from v2.17.0-8810 to PROD #441
Workflow file for this run
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: Release - Deploy All | |
| run-name: Release - Deploy all from ${{ github.ref_name }} to ${{ inputs.environment }} | |
| permissions: | |
| contents: read | |
| actions: read | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| environment: | |
| description: "Environment" | |
| required: true | |
| type: environment | |
| deployCamundaDefinitions: | |
| description: "Deploy Camunda BPMN/DMN" | |
| type: boolean | |
| default: true | |
| deployFormioDefinitions: | |
| description: "Deploy Form.io forms" | |
| type: boolean | |
| default: true | |
| workflow_call: | |
| inputs: | |
| gitRef: | |
| required: true | |
| type: string | |
| environment: | |
| required: true | |
| type: string | |
| deployCamundaDefinitions: | |
| required: true | |
| type: boolean | |
| deployFormioDefinitions: | |
| required: true | |
| type: boolean | |
| secrets: | |
| SA_TOKEN: | |
| required: true | |
| OPENSHIFT_ENV_NAMESPACE: | |
| required: true | |
| HOST_PREFIX: | |
| required: true | |
| KEYCLOAK_AUTH_URL: | |
| required: true | |
| BCeID_WEB_SERVICE_WSDL: | |
| required: true | |
| SITE_MINDER_LOGOUT_URL: | |
| required: true | |
| ATBC_LOGIN_ENDPOINT: | |
| required: true | |
| ATBC_ENDPOINT: | |
| required: true | |
| BYPASS_APPLICATION_SUBMIT_VALIDATIONS: | |
| required: true | |
| BYPASS_CRA_INCOME_VERIFICATION: | |
| required: true | |
| OPENSHIFT_SIMS_CREDS_NAME: | |
| required: true | |
| FORMS_SECRET_NAME: | |
| required: true | |
| QUEUE_PREFIX: | |
| required: true | |
| API_PORT: | |
| required: true | |
| WEB_PORT: | |
| required: true | |
| env: | |
| NAMESPACE: ${{ secrets.OPENSHIFT_ENV_NAMESPACE }} | |
| BUILD_REF: ${{ inputs.gitRef || github.ref_name }} | |
| HOST_PREFIX: ${{ secrets.HOST_PREFIX }} | |
| DOMAIN_PREFIX: ${{ vars.DOMAIN_PREFIX }} | |
| BUILD_NAMESPACE: ${{ vars.BUILD_NAMESPACE }} | |
| KEYCLOAK_REALM: ${{ vars.KEYCLOAK_REALM }} | |
| IS_FULLTIME_ALLOWED: ${{ vars.IS_FULLTIME_ALLOWED }} | |
| KEYCLOAK_AUTH_URL: ${{ secrets.KEYCLOAK_AUTH_URL }} | |
| BCeID_WEB_SERVICE_WSDL: ${{ secrets.BCeID_WEB_SERVICE_WSDL }} | |
| SITE_MINDER_LOGOUT_URL: ${{ secrets.SITE_MINDER_LOGOUT_URL }} | |
| ATBC_LOGIN_ENDPOINT: ${{ secrets.ATBC_LOGIN_ENDPOINT }} | |
| ATBC_ENDPOINT: ${{ secrets.ATBC_ENDPOINT }} | |
| SWAGGER_ENABLED: true | |
| APPLICATION_ARCHIVE_DAYS: ${{ vars.APPLICATION_ARCHIVE_DAYS }} | |
| BYPASS_APPLICATION_SUBMIT_VALIDATIONS: ${{ secrets.BYPASS_APPLICATION_SUBMIT_VALIDATIONS }} | |
| BYPASS_CRA_INCOME_VERIFICATION: ${{ secrets.BYPASS_CRA_INCOME_VERIFICATION }} | |
| API_SECRET_NAME: ${{ secrets.OPENSHIFT_SIMS_CREDS_NAME }} | |
| WORKERS_SECRET_NAME: ${{ secrets.OPENSHIFT_SIMS_CREDS_NAME }} | |
| QUEUE_CONSUMERS_SECRET_NAME: ${{ secrets.OPENSHIFT_SIMS_CREDS_NAME }} | |
| FORMS_SECRET_NAME: ${{ secrets.FORMS_SECRET_NAME }} | |
| QUEUE_PREFIX: ${{ secrets.QUEUE_PREFIX }} | |
| API_PORT: ${{ secrets.API_PORT }} | |
| WEB_PORT: ${{ secrets.WEB_PORT }} | |
| MAXIMUM_IDLE_TIME_FOR_WARNING_STUDENT: ${{ vars.MAXIMUM_IDLE_TIME_FOR_WARNING_STUDENT }} | |
| MAXIMUM_IDLE_TIME_FOR_WARNING_SUPPORTING_USER: ${{ vars.MAXIMUM_IDLE_TIME_FOR_WARNING_SUPPORTING_USER }} | |
| MAXIMUM_IDLE_TIME_FOR_WARNING_INSTITUTION: ${{ vars.MAXIMUM_IDLE_TIME_FOR_WARNING_INSTITUTION }} | |
| MAXIMUM_IDLE_TIME_FOR_WARNING_AEST: ${{ vars.MAXIMUM_IDLE_TIME_FOR_WARNING_AEST }} | |
| APPLICATION_SUBMISSION_DEADLINE_WEEKS: ${{ vars.APPLICATION_SUBMISSION_DEADLINE_WEEKS }} | |
| APP_ENV: ${{ vars.APP_ENV }} | |
| TLS_CERTIFICATE: ${{ secrets.TLS_CERTIFICATE }} | |
| TLS_KEY: ${{ secrets.TLS_KEY }} | |
| TLS_CA_CERTIFICATE: ${{ secrets.TLS_CA_CERTIFICATE }} | |
| ALLOW_BETA_USERS_ONLY: ${{ vars.ALLOW_BETA_USERS_ONLY }} | |
| ALLOW_BETA_INSTITUTIONS_ONLY: ${{ vars.ALLOW_BETA_INSTITUTIONS_ONLY }} | |
| FORMIO_CPU_REQUEST: ${{ vars.FORMIO_CPU_REQUEST }} | |
| FORMIO_MEMORY_REQUEST: ${{ vars.FORMIO_MEMORY_REQUEST }} | |
| FORMIO_MEMORY_LIMIT: ${{ vars.FORMIO_MEMORY_LIMIT }} | |
| FORMIO_REPLICAS: ${{ vars.FORMIO_REPLICAS }} | |
| API_CPU_REQUEST: ${{ vars.API_CPU_REQUEST }} | |
| API_MEMORY_REQUEST: ${{ vars.API_MEMORY_REQUEST }} | |
| API_MEMORY_LIMIT: ${{ vars.API_MEMORY_LIMIT }} | |
| API_REPLICAS: ${{ vars.API_REPLICAS }} | |
| WORKERS_CPU_REQUEST: ${{ vars.WORKERS_CPU_REQUEST }} | |
| WORKERS_MEMORY_REQUEST: ${{ vars.WORKERS_MEMORY_REQUEST }} | |
| WORKERS_MEMORY_LIMIT: ${{ vars.WORKERS_MEMORY_LIMIT }} | |
| WORKERS_REPLICAS: ${{ vars.WORKERS_REPLICAS }} | |
| WEB_CPU_REQUEST: ${{ vars.WEB_CPU_REQUEST }} | |
| WEB_MEMORY_REQUEST: ${{ vars.WEB_MEMORY_REQUEST }} | |
| WEB_MEMORY_LIMIT: ${{ vars.WEB_MEMORY_LIMIT }} | |
| WEB_REPLICAS: ${{ vars.WEB_REPLICAS }} | |
| QUEUE_CONSUMERS_CPU_REQUEST: ${{ vars.QUEUE_CONSUMERS_CPU_REQUEST }} | |
| QUEUE_CONSUMERS_MEMORY_REQUEST: ${{ vars.QUEUE_CONSUMERS_MEMORY_REQUEST }} | |
| QUEUE_CONSUMERS_MEMORY_LIMIT: ${{ vars.QUEUE_CONSUMERS_MEMORY_LIMIT }} | |
| QUEUE_CONSUMERS_REPLICAS: ${{ vars.QUEUE_CONSUMERS_REPLICAS }} | |
| EXTERNAL_IP_WHITELIST: ${{ vars.EXTERNAL_IP_WHITELIST }} | |
| jobs: | |
| env-setup: | |
| name: Setup Dynamic Environment Variables | |
| environment: ${{ inputs.environment }} | |
| runs-on: ubuntu-latest | |
| outputs: | |
| build-ref: ${{ steps.set-build-ref.outputs.build-ref }} | |
| steps: | |
| - name: Set build-ref | |
| id: set-build-ref | |
| run: | | |
| # Set the build ref to be used in the workflow and reusable workflows calls. | |
| echo "build-ref=${{ env.BUILD_REF }}" >> "$GITHUB_OUTPUT" | |
| # Run DB migrations. | |
| run-db-migrations: | |
| name: Run DB Migrations | |
| environment: ${{ inputs.environment }} | |
| runs-on: ubuntu-latest | |
| needs: env-setup | |
| steps: | |
| - name: Install CLI tools from OpenShift Mirror | |
| uses: redhat-actions/openshift-tools-installer@v1 | |
| with: | |
| oc: "4" | |
| - name: Print env | |
| run: | | |
| echo Deploy Environment: ${{ inputs.environment }} | |
| echo GIT REF: ${{ needs.env-setup.outputs.build-ref }} | |
| echo BUILD NAMESPACE: $BUILD_NAMESPACE | |
| echo OC CLI Version: $(oc version) | |
| - name: Checkout Target Branch | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ needs.env-setup.outputs.build-ref }} | |
| - name: Log in to OpenShift | |
| run: | | |
| oc login --token=${{ secrets.SA_TOKEN }} --server=${{ vars.OPENSHIFT_CLUSTER_URL }} | |
| - name: Run db-migrations | |
| working-directory: "./devops/" | |
| run: | | |
| make oc-run-db-migrations | |
| # Deploy SIMS API. | |
| deploy-sims-api: | |
| name: Deploy SIMS-API | |
| environment: ${{ inputs.environment }} | |
| runs-on: ubuntu-latest | |
| needs: [env-setup, run-db-migrations] | |
| steps: | |
| - name: Install CLI tools from OpenShift Mirror | |
| uses: redhat-actions/openshift-tools-installer@v1 | |
| with: | |
| oc: "4" | |
| - name: Print env | |
| run: | | |
| echo Deploy ENVIRONMENT: ${{ inputs.environment }} | |
| echo GIT REF: ${{ needs.env-setup.outputs.build-ref }} | |
| echo BUILD NAMESPACE: $BUILD_NAMESPACE | |
| echo OC CLI Version: $(oc version) | |
| - name: Checkout Target Branch | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ needs.env-setup.outputs.build-ref }} | |
| - name: Log in to OpenShift | |
| run: | | |
| oc login --token=${{ secrets.SA_TOKEN }} --server=${{ vars.OPENSHIFT_CLUSTER_URL }} | |
| - name: Deploy SIMS-API | |
| working-directory: "./devops/" | |
| run: | | |
| make oc-deploy-api | |
| # Deploy workers. | |
| deploy-workers: | |
| name: Deploy Workers | |
| environment: ${{ inputs.environment }} | |
| env: | |
| DISABLE_ORM_CACHE: true | |
| runs-on: ubuntu-latest | |
| needs: [env-setup, run-db-migrations] | |
| steps: | |
| - name: Install CLI tools from OpenShift Mirror | |
| uses: redhat-actions/openshift-tools-installer@v1 | |
| with: | |
| oc: "4" | |
| - name: Print env | |
| run: | | |
| echo BUILD ENVIRONMENT: ${{ inputs.environment }} | |
| echo GIT REF: ${{ needs.env-setup.outputs.build-ref }} | |
| echo OC CLI Version: $(oc version) | |
| - name: Checkout Target Branch | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ needs.env-setup.outputs.build-ref }} | |
| - name: Log in to OpenShift | |
| run: | | |
| oc login --token=${{ secrets.SA_TOKEN }} --server=${{ vars.OPENSHIFT_CLUSTER_URL }} | |
| - name: Deploy Workers | |
| working-directory: "./devops/" | |
| run: | | |
| make oc-deploy-workers | |
| # Deploy queue consumers. | |
| deploy-queue-consumers: | |
| name: Deploy Queue Consumers | |
| environment: ${{ inputs.environment }} | |
| runs-on: ubuntu-latest | |
| needs: [env-setup, run-db-migrations] | |
| steps: | |
| - name: Install CLI tools from OpenShift Mirror | |
| uses: redhat-actions/openshift-tools-installer@v1 | |
| with: | |
| oc: "4" | |
| - name: Print env | |
| run: | | |
| echo Deploy ENVIRONMENT: ${{ inputs.environment }} | |
| echo GIT REF: ${{ needs.env-setup.outputs.build-ref }} | |
| echo BUILD NAMESPACE: $BUILD_NAMESPACE | |
| echo OC CLI Version: $(oc version) | |
| - name: Checkout Target Branch | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ needs.env-setup.outputs.build-ref }} | |
| - name: Log in to OpenShift | |
| run: | | |
| oc login --token=${{ secrets.SA_TOKEN }} --server=${{ vars.OPENSHIFT_CLUSTER_URL }} | |
| - name: Deploy Queue Consumers | |
| working-directory: "./devops/" | |
| run: | | |
| make oc-deploy-queue-consumers | |
| # Deploy Web/Frontend. | |
| deploy-web-frontend: | |
| name: Deploy Web/Frontend | |
| environment: ${{ inputs.environment }} | |
| runs-on: ubuntu-latest | |
| needs: [env-setup, run-db-migrations] | |
| steps: | |
| - name: Install CLI tools from OpenShift Mirror | |
| uses: redhat-actions/openshift-tools-installer@v1 | |
| with: | |
| oc: "4" | |
| - name: Print env | |
| run: | | |
| echo Deploy ENVIRONMENT: ${{ inputs.environment }} | |
| echo GIT REF: ${{ needs.env-setup.outputs.build-ref }} | |
| echo BUILD NAMESPACE: $BUILD_NAMESPACE | |
| echo OC CLI Version: $(oc version) | |
| - name: Checkout Target Branch | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ needs.env-setup.outputs.build-ref }} | |
| - name: Log in to OpenShift | |
| run: | | |
| oc login --token=${{ secrets.SA_TOKEN }} --server=${{ vars.OPENSHIFT_CLUSTER_URL }} | |
| - name: Deploy Web/Frontend | |
| working-directory: "./devops/" | |
| run: | | |
| make oc-deploy-web | |
| # Deploy Camunda Definitions | |
| deployCamundaDefinitions: | |
| if: ${{ inputs.deployCamundaDefinitions }} | |
| name: Deploy BPMNs and DMNs to Camunda | |
| needs: [env-setup, deploy-sims-api] | |
| uses: ./.github/workflows/release-deploy-camunda-definitions.yml | |
| with: | |
| environment: ${{ inputs.environment }} | |
| gitRef: ${{ needs.env-setup.outputs.build-ref }} | |
| secrets: inherit | |
| # Deploy Formio Definitions | |
| deployFormioDefinitions: | |
| if: ${{ inputs.deployFormioDefinitions }} | |
| name: Deploy Form.io definitions | |
| needs: [env-setup, deploy-sims-api] | |
| uses: ./.github/workflows/release-deploy-formio-definitions.yml | |
| with: | |
| environment: ${{ inputs.environment }} | |
| gitRef: ${{ needs.env-setup.outputs.build-ref }} | |
| secrets: inherit |