diff --git a/.github/workflows/ci-cd-pull-request.yml b/.github/workflows/ci-cd-pull-request.yml index 85909d889..cad6f9083 100644 --- a/.github/workflows/ci-cd-pull-request.yml +++ b/.github/workflows/ci-cd-pull-request.yml @@ -3,97 +3,49 @@ on: pull_request: branches: [main] - paths-ignore: - - "tests/k6/**" - - "CHANGELOG.md" jobs: - generate-git-short-sha: - name: Generate git short sha - uses: ./.github/workflows/workflow-generate-git-short-sha.yml - - get-current-version: - name: Get current version - uses: ./.github/workflows/workflow-get-current-version.yml - - check-for-changes: - name: Check for changes - uses: ./.github/workflows/workflow-check-for-changes.yml - - build: - uses: ./.github/workflows/workflow-build-and-test.yml - needs: [check-for-changes] - if: ${{ needs.check-for-changes.outputs.hasBackendChanges == 'true' || needs.check-for-changes.outputs.hasTestChanges == 'true' }} - - build-infrastructure: - uses: ./.github/workflows/workflow-build-infrastructure.yml - needs: [check-for-changes] - if: ${{ always() && needs.check-for-changes.outputs.hasAzureChanges == 'true' }} - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - with: - environment: "test" - - dry-run-deploy-infra: - name: Dry run deploy infrastructure - uses: ./.github/workflows/workflow-deploy-infra.yml - needs: - [ - generate-git-short-sha, - check-for-changes, - get-current-version, - build-infrastructure, - ] - if: ${{ always() && needs.check-for-changes.outputs.hasAzureChanges == 'true' }} - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - AZURE_SOURCE_KEY_VAULT_NAME: ${{ secrets.AZURE_SOURCE_KEY_VAULT_NAME }} - AZURE_SOURCE_KEY_VAULT_SUBSCRIPTION_ID: ${{ secrets.AZURE_SOURCE_KEY_VAULT_SUBSCRIPTION_ID }} - AZURE_SOURCE_KEY_VAULT_RESOURCE_GROUP: ${{ secrets.AZURE_SOURCE_KEY_VAULT_RESOURCE_GROUP }} - AZURE_SOURCE_KEY_VAULT_SSH_JUMPER_SSH_PUBLIC_KEY: ${{ secrets.AZURE_SOURCE_KEY_VAULT_SSH_JUMPER_SSH_PUBLIC_KEY }} + get-versions-from-github: + name: Get Latest Deployed Versions from GitHub Variables + uses: ./.github/workflows/workflow-get-latest-deployed-versions-from-github.yml with: environment: test - region: norwayeast - dryRun: true - version: ${{ needs.get-current-version.outputs.version }}-${{ needs.generate-git-short-sha.outputs.gitShortSha }} - dry-run-deploy-apps: - name: Dry run deploy apps - needs: - [ - get-current-version, - check-for-changes, - generate-git-short-sha, - dry-run-deploy-infra, - ] - # we want deployment of apps to be dependent on deployment of infrastructure, but if infrastructure is skipped, we still want to deploy the apps - if: ${{ always() && !failure() && !cancelled() && (needs.check-for-changes.outputs.hasBackendChanges == 'true' || needs.check-for-changes.outputs.hasMigrationChanges == 'true') }} - uses: ./.github/workflows/workflow-deploy-apps.yml - secrets: - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - AZURE_RESOURCE_GROUP_NAME: ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} - AZURE_ENVIRONMENT_KEY_VAULT_NAME: ${{ secrets.AZURE_ENVIRONMENT_KEY_VAULT_NAME }} - AZURE_CONTAINER_APP_ENVIRONMENT_NAME: ${{ secrets.AZURE_CONTAINER_APP_ENVIRONMENT_NAME }} - AZURE_APP_INSIGHTS_CONNECTION_STRING: ${{ secrets.AZURE_APP_INSIGHTS_CONNECTION_STRING }} - AZURE_APP_CONFIGURATION_NAME: ${{ secrets.AZURE_APP_CONFIGURATION_NAME }} - AZURE_SERVICE_BUS_NAMESPACE_NAME: ${{ secrets.AZURE_SERVICE_BUS_NAMESPACE_NAME }} + mock-deployment: + name: Mock Deployment + needs: [get-versions-from-github] + runs-on: ubuntu-latest + steps: + - name: Echo Infra Version + run: echo "Mock deploying infrastructure version ${{ needs.get-versions-from-github.outputs.infra_version_sha }}" + - name: Echo Apps Version + run: echo "Mock deploying applications version ${{ needs.get-versions-from-github.outputs.apps_version_sha }}" + + store-mock-versions: + name: Store Mock Versions + needs: [mock-deployment] + runs-on: ubuntu-latest + steps: + - name: Set Mock Infra Version + run: | + gh variable set LATEST_DEPLOYED_INFRA_VERSION "v1.0.0-mock" --repo ${{ github.repository }} --env test + - name: Set Mock Apps Version + run: | + gh variable set LATEST_DEPLOYED_APPS_VERSION "v1.0.0-mock" --repo ${{ github.repository }} --env test + + verify-stored-versions: + name: Verify Stored Versions + needs: [store-mock-versions] + uses: ./.github/workflows/workflow-get-latest-deployed-versions-from-github.yml with: environment: test - region: norwayeast - version: ${{ needs.get-current-version.outputs.version }}-${{ needs.generate-git-short-sha.outputs.gitShortSha }} - runMigration: ${{ needs.check-for-changes.outputs.hasMigrationChanges == 'true' }} - dryRun: true - delete-github-deployments: - name: Delete GitHub deployments - uses: ./.github/workflows/workflow-delete-deployments.yml - needs: [dry-run-deploy-apps, dry-run-deploy-infra] - if: ${{ always() && !failure() && !cancelled() }} - with: - gitSha: ${{ github.event.pull_request.head.sha }} \ No newline at end of file + echo-verified-versions: + name: Echo Verified Versions + needs: [verify-stored-versions] + runs-on: ubuntu-latest + steps: + - name: Echo Verified Infra Version + run: echo "Verified infrastructure version ${{ needs.verify-stored-versions.outputs.infra_version_sha }}" + - name: Echo Verified Apps Version + run: echo "Verified applications version ${{ needs.verify-stored-versions.outputs.apps_version_sha }}"