Skip to content

feat(terraform): moved all terraform files to a single folder and upg… #112

feat(terraform): moved all terraform files to a single folder and upg…

feat(terraform): moved all terraform files to a single folder and upg… #112

name: Deploy services receiving incoming traffic
concurrency: traffic
permissions:
id-token: write
contents: read
on:
workflow_dispatch:
push:
branches:
- main
paths:
- ".github/workflows/**"
- "infrastructure/terraform/external/**"
- "infrastructure/terraform/dns-proxy/**"
- "infrastructure/terraform/modules/**"
- "apps/api/**"
- "apps/authentication/**"
- "apps/gateway/**"
- "apps/admin/**"
jobs:
build-publish-api:
name: Build and publish the API
uses: ./.github/workflows/reusable-dotnet-service.yaml
with:
service-name: api
service-path: apps/api
secrets: inherit
build-publish-authentication:
name: Build and publish the Authentication service
uses: ./.github/workflows/reusable-authentication-service.yaml
secrets: inherit
build-publish-gateway:
name: Build and publish the Gateway
uses: ./.github/workflows/reusable-dotnet-service.yaml
with:
service-name: gateway
service-path: apps/gateway
execute-tests: false
secrets: inherit
build-publish-admin-portal:
name: Build and publish the Admin portal
uses: ./.github/workflows/reusable-dotnet-service.yaml
with:
service-name: admin
service-path: apps/admin
project-name: Web
execute-tests: false
secrets: inherit
provision-incoming-traffic-services:
name: Deploy the services serving traffic
needs:
[
build-publish-api,
build-publish-authentication,
build-publish-gateway,
build-publish-admin-portal,
]
uses: ./.github/workflows/reusable-provision.yaml
with:
environment: ${{ vars.ENVIRONMENT }}
infrastructure-path: external
service-name: incoming-traffic
application-names: ${{ vars.APPLICATION_NAMES }}
supertokens-core-docker-image-version: ${{ vars.DOCKER_SUPERTOKENS_CORE_VERSION }}
postgres-docker-image-version: ${{ vars.DOCKER_POSTGRES_VERSION }}
secrets: inherit
proxy-records:
name: Proxy DNS records for the services receiving traffic
needs: provision-incoming-traffic-services
uses: ./.github/workflows/reusable-provision.yaml
with:
environment: ${{ vars.ENVIRONMENT }}
infrastructure-path: dns-proxy
service-name: dns-proxy
application-names: ${{ vars.APPLICATION_NAMES }}
secrets: inherit