Merge pull request #4340 from signalco-io/next #7355
This file contains 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
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json | |
name: '[Web] CI' | |
on: | |
pull_request: | |
paths: | |
- 'web/**' | |
- 'cloud/**' | |
- 'infra/**' | |
- "station/**" | |
- '.github/workflows/web-nextjs_bundle_analysis.yml' | |
- '.github/workflows/nextjs_bundle_analysis_reusable.yml' | |
- '.github/workflows/cloud-deploy-preview_reusable.yml' | |
push: | |
branches: | |
- main | |
- next | |
paths: | |
- 'web/**' | |
- 'cloud/**' | |
- 'infra/**' | |
- "station/**" | |
- '.github/workflows/web-nextjs_bundle_analysis.yml' | |
- '.github/workflows/nextjs_bundle_analysis_reusable.yml' | |
- '.github/workflows/cloud-deploy-preview_reusable.yml' | |
workflow_dispatch: | |
jobs: | |
changes: | |
name: "Detect changes" | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: read | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: | | |
infrastructure: | |
- cloud/** | |
- infra/** | |
- .github/workflows/web-nextjs_bundle_analysis.yml | |
- .github/workflows/cloud-deploy-preview_reusable.yml | |
web: | |
- web/** | |
- .github/workflows/web-nextjs_bundle_analysis.yml | |
- .github/workflows/nextjs_bundle_analysis_reusable.yml | |
station: | |
- station/** | |
- .github/workflows/web-nextjs_bundle_analysis.yml | |
outputs: | |
infra: ${{ steps.filter.outputs.infrastructure }} | |
web: ${{ steps.filter.outputs.web }} | |
station: ${{ steps.filter.outputs.station }} | |
station_ci: | |
strategy: | |
matrix: | |
kind: ["arm-x64", "windows-x64"] | |
include: | |
- kind: arm-x64 | |
os: ubuntu-latest | |
target: linux-arm64 | |
- kind: windows-x64 | |
os: ubuntu-latest | |
target: win-x64 | |
runs-on: ${{ matrix.os }} | |
needs: changes | |
if: success() && github.event_name == 'pull_request' && needs.changes.outputs.station == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.x | |
- name: Build | |
shell: bash | |
run: | | |
dotnet build ./Signal.Beacon.WorkerService/Signal.Beacon.csproj -r "${{ matrix.target }}" --self-contained true | |
working-directory: ./station | |
cloud_preview: | |
name: "Cloud Primary infrastructure (preview)" | |
uses: ./.github/workflows/infra-deploy_reusable.yml | |
needs: changes | |
if: success() && github.event_name == 'pull_request' && needs.changes.outputs.infra == 'true' | |
with: | |
project: "cloud-primary" | |
baseRef: ${{ github.base_ref }} | |
command: "preview" | |
secrets: inherit | |
uier_infra_preview: | |
name: "uier infrastructure (preview)" | |
uses: ./.github/workflows/infra-deploy_reusable.yml | |
needs: changes | |
if: success() && github.event_name == 'pull_request' && needs.changes.outputs.infra == 'true' | |
with: | |
project: "uier" | |
baseRef: ${{ github.base_ref }} | |
command: "preview" | |
secrets: inherit | |
analyze_blog: | |
name: "Blog" | |
needs: changes | |
if: success() && needs.changes.outputs.web == 'true' | |
uses: ./.github/workflows/nextjs_bundle_analysis_reusable.yml | |
with: | |
workflowName: 'web-nextjs_bundle_analysis.yml' | |
name: 'blog' | |
path: 'web/apps/blog' | |
vercelProjectId: 'prj_VT7qOjkcEvkAsZH7MtSxWcVDWVpr' | |
secrets: inherit | |
analyze_app: | |
name: "App" | |
needs: changes | |
if: success() && needs.changes.outputs.web == 'true' | |
uses: ./.github/workflows/nextjs_bundle_analysis_reusable.yml | |
with: | |
workflowName: 'web-nextjs_bundle_analysis.yml' | |
name: 'app' | |
path: 'web/apps/app' | |
vercelProjectId: 'prj_q8N5ElZfzvq4BjEMBIsyEfqe4jsI' | |
secrets: inherit | |
analyze_brandgrab: | |
name: "BrandGrab" | |
needs: changes | |
if: success() && needs.changes.outputs.web == 'true' | |
uses: ./.github/workflows/nextjs_bundle_analysis_reusable.yml | |
with: | |
workflowName: 'web-nextjs_bundle_analysis.yml' | |
name: 'brandgrab' | |
path: 'web/apps/brandgrab' | |
vercelProjectId: 'prj_QHQO9V4WwYqlcpXNufZ4SU3Ryftx' | |
secrets: inherit | |
analyze_web: | |
name: "Web" | |
needs: changes | |
if: success() && needs.changes.outputs.web == 'true' | |
uses: ./.github/workflows/nextjs_bundle_analysis_reusable.yml | |
with: | |
workflowName: 'web-nextjs_bundle_analysis.yml' | |
name: 'web' | |
path: 'web/apps/web' | |
vercelProjectId: 'prj_PYE8WwpynTfjD6rVMiCp7sZoCPYw' | |
secrets: inherit | |
analyze_slco: | |
name: "slco" | |
needs: changes | |
if: success() && needs.changes.outputs.web == 'true' | |
uses: ./.github/workflows/nextjs_bundle_analysis_reusable.yml | |
with: | |
workflowName: 'web-nextjs_bundle_analysis.yml' | |
name: 'slco' | |
path: 'web/apps/slco' | |
vercelProjectId: 'prj_GNETZANB7evyT5coH7gptur1G1sN' | |
secrets: inherit | |
analyze_doprocess: | |
name: "doprocess" | |
needs: changes | |
if: success() && needs.changes.outputs.web == 'true' | |
uses: ./.github/workflows/nextjs_bundle_analysis_reusable.yml | |
with: | |
workflowName: 'web-nextjs_bundle_analysis.yml' | |
name: 'doprocess' | |
path: 'web/apps/doprocess' | |
vercelProjectId: 'prj_UoJ8CHr3RAlOya6A9fpJ4oKzQhCJ' | |
secrets: inherit |