name: Build, Update Config, and Deploy Development on: workflow_dispatch: push: branches: - main paths: - "plugins/**" - "services/tenant-ui/**" - "charts/traction/**" - "charts/tenant-ui/**" jobs: build_ui: name: "Build Tenant UI" runs-on: ubuntu-latest if: github.repository_owner == 'bcgov' steps: - uses: actions/checkout@v4 - name: Build service uses: ./.github/actions/build_ui id: builder with: context: "./services/tenant-ui" image_name: ${{ github.repository_owner}}/traction-tenant-ui registry: ghcr.io registry_username: ${{ github.repository_owner}} registry_password: ${{ secrets.GITHUB_TOKEN }} outputs: image_tag: ${{ steps.builder.outputs.image_tag }} image_version: ${{ steps.builder.outputs.image_version }} build_acapy: name: "Build Traction Aca-Py" runs-on: ubuntu-latest if: github.repository_owner == 'bcgov' steps: - uses: actions/checkout@v4 - name: Build Aca-Py Image uses: ./.github/actions/build_acapy id: builder with: context: "./plugins" dockerfile: "./plugins/docker/Dockerfile" image_name: ${{ github.repository_owner}}/traction-plugins-acapy registry: ghcr.io registry_username: ${{ github.repository_owner}} registry_password: ${{ secrets.GITHUB_TOKEN }} outputs: image_tag: ${{ steps.builder.outputs.image_tag }} image_version: ${{ steps.builder.outputs.image_version }} build_proxy: name: "Build Traction Tenant Proxy" runs-on: ubuntu-latest if: github.repository_owner == 'bcgov' steps: - uses: actions/checkout@v4 - name: Build Aca-Py Image uses: ./.github/actions/build_acapy id: builder with: context: "./plugins" dockerfile: "./plugins/docker/Dockerfile.tenant-proxy" image_name: ${{ github.repository_owner}}/traction-tenant-proxy registry: ghcr.io registry_username: ${{ github.repository_owner}} registry_password: ${{ secrets.GITHUB_TOKEN }} outputs: image_tag: ${{ steps.builder.outputs.image_tag }} image_version: ${{ steps.builder.outputs.image_version }} deploy_dev: name: Deploy Dev environment: development runs-on: ubuntu-latest needs: - build_ui - build_acapy - build_proxy if: ${{ contains(needs.*.result, 'success') && !(contains(needs.*.result, 'failure')) && (github.repository_owner == 'bcgov') }} steps: - uses: actions/checkout@v4 - name: Checkout services directory from the trust-over-ip-configurations repo uses: actions/checkout@v4 with: repository: bcgov/trust-over-ip-configurations ssh-key: ${{ secrets.DITP_CONFIGS_REPO_SECRET }} sparse-checkout: | services path: trust-over-ip-configurations - name: Authenticate and set context uses: redhat-actions/oc-login@v1 with: openshift_server_url: ${{ secrets.OPENSHIFT_SERVER }} openshift_token: ${{ secrets.OPENSHIFT_TOKEN }} certificate_authority_data: ${{ secrets.OPENSHIFT_CA_CRT }} namespace: ${{ secrets.OPENSHIFT_NAMESPACE }} - name: Deploy Traction to Development run: | cp trust-over-ip-configurations/services/traction/charts/dev/values.yaml ./dev-values.yaml yq e -i 'del(.traction) | . *= load("trust-over-ip-configurations/services/traction/charts/dev/values.yaml").traction' ./dev-values.yaml helm upgrade --install traction -f ./dev-values.yaml --set acapy.image.tag=${{ needs.build_acapy.outputs.image_version }} --set tenant_proxy.image.tag=${{ needs.build_acapy.outputs.image_version }} --set ui.image.tag=${{ needs.build_ui.outputs.image_version }} ./charts/traction --wait - name: Restart Deployments run: | oc rollout restart deployment/traction-acapy oc rollout restart deployment/traction-tenant-proxy oc rollout restart deployment/traction-tenant-ui