Skip to content

Merge pull request #4266 from signalco-io/next #7091

Merge pull request #4266 from signalco-io/next

Merge pull request #4266 from signalco-io/next #7091

# 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