Skip to content

Merge pull request #1419 from LetPeopleWork/dependabot/npm_and_yarn/L… #4380

Merge pull request #1419 from LetPeopleWork/dependabot/npm_and_yarn/L…

Merge pull request #1419 from LetPeopleWork/dependabot/npm_and_yarn/L… #4380

Workflow file for this run

name: Build And Deploy Lighthouse
on:
push:
branches: [ "main", "features/**" ]
paths:
- "Lighthouse.Backend/**"
- "Lighthouse.Backend.Tests/**"
- "Lighthouse.EndToEndTests/**"
- "Lighthouse.Frontend/**"
- ".github/workflows/ci*.yml"
- ".github/actions/**"
- "examples/postgres/**"
pull_request:
branches: [ "main" ]
workflow_dispatch:
jobs:
version:
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_version.yml
name: Version
permissions:
actions: read
contents: write
changes:
uses: ./.github/workflows/ci_changes.yml
name: Detect Changes
backend:
needs: changes
uses: ./.github/workflows/ci_backend.yml
name: Verify Backend
with:
backend: ${{ needs.changes.outputs.backend }}
jira_connector: ${{ needs.changes.outputs.jira_connector }}
ado_connector: ${{ needs.changes.outputs.ado_connector }}
linear_connector: ${{ needs.changes.outputs.linear_connector }}
connector_shared: ${{ needs.changes.outputs.connector_shared }}
secrets: inherit
frontend:
needs: changes
uses: ./.github/workflows/ci_frontend.yml
name: Verify Frontend
with:
frontend: ${{ needs.changes.outputs.frontend }}
secrets: inherit
e2e:
needs: changes
uses: ./.github/workflows/ci_e2e.yml
name: Verify End to End Tests
with:
e2e: ${{ needs.changes.outputs.e2e }}
sonar-gates:
needs: [frontend, backend]
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_sonar_gates.yml
with:
frontend-ran: ${{ needs.frontend.result == 'success' }}
backend-ran: ${{ needs.backend.result == 'success' }}
secrets: inherit
packageapp:
needs: [version, sbom]
# Run version even if some prior jobs were skipped, but not if they failed
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_packageapp.yml
name: Package App
permissions:
actions: write
with:
fileversion: ${{ needs.version.outputs.fileversion }}
version: ${{ needs.version.outputs.version }}
sbom-version: ${{ github.ref == 'refs/heads/main' && needs.version.outputs.version || '' }}
docker:
needs: version
# Run version even if some prior jobs were skipped, but not if they failed
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_docker.yml
name: Build and Push Docker Image
permissions:
packages: write
with:
fileversion: ${{ needs.version.outputs.fileversion }}
secrets: inherit
sbom:
needs: version
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_sbom.yml
name: Generate SBOM
permissions:
contents: read
with:
version: ${{ needs.version.outputs.version }}
# Linux verification with EndToEnd tests
verifysqlite:
needs: [frontend, backend, e2e, packageapp, version]
# Run version even if some prior jobs were skipped, but not if they failed
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_verifysqlite.yml
name: Verify SQLite Linux Build
permissions:
actions: read
with:
version: ${{ needs.version.outputs.version }}
secrets: inherit
verifypostgres:
needs: [frontend, backend, e2e, packageapp, version]
# Run version even if some prior jobs were skipped, but not if they failed
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_verifypostgres.yml
name: Verify Postgres Linux Build
permissions:
actions: read
with:
version: ${{ needs.version.outputs.version }}
secrets: inherit
verifyauth:
needs: [frontend, backend, e2e, packageapp, version]
# Run version even if some prior jobs were skipped, but not if they failed
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_verifyauth.yml
name: Verify Authentication
permissions:
actions: read
with:
version: ${{ needs.version.outputs.version }}
secrets: inherit
# Linux standalone (Tauri AppImage)
package-linux-standalone:
needs: [version, sbom, packageapp, verifysqlite, verifypostgres, sonar-gates]
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_package-linux-standalone.yml
name: Package Linux Standalone
permissions:
actions: write
with:
fileversion: ${{ needs.version.outputs.fileversion }}
version: ${{ needs.version.outputs.version }}
secrets: inherit
# Windows standalone (Tauri NSIS + MSI)
package-win-standalone:
needs: [version, sbom, packageapp, verifysqlite, verifypostgres, sonar-gates]
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_package-win-standalone.yml
name: Package Windows Standalone
permissions:
actions: write
with:
fileversion: ${{ needs.version.outputs.fileversion }}
version: ${{ needs.version.outputs.version }}
secrets: inherit
# Windows signing and verification
codesign-windows:
needs: [version, package-win-standalone]
# Run version even if some prior jobs were skipped, but not if they failed
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_codesign-windows.yml
name: Code Sign Windows App
permissions:
actions: write
secrets: inherit
with:
version: ${{ needs.version.outputs.version }}
verifywindows:
needs: [codesign-windows, version]
# Run version even if some prior jobs were skipped, but not if they failed
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_verifywindows.yml
name: Verify Windows App
permissions:
actions: read
with:
version: ${{ needs.version.outputs.version }}
# macOS standalone (Tauri DMG)
package-macos-standalone:
needs: [version, sbom, packageapp, verifysqlite, verifypostgres, sonar-gates]
# Run version even if some prior jobs were skipped, but not if they failed
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_package-macos-standalone.yml
name: Package macOS Standalone
permissions:
actions: write
with:
fileversion: ${{ needs.version.outputs.fileversion }}
version: ${{ needs.version.outputs.version }}
secrets: inherit
verifymacos:
needs: [package-macos-standalone, version]
# Run version even if some prior jobs were skipped, but not if they failed
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_verifymacos.yml
name: Verify macOS App
permissions:
actions: read
with:
version: ${{ needs.version.outputs.version }}
secrets: inherit
release:
needs: [version, docker, sbom, verifysqlite, verifypostgres, verifyauth, verifymacos, verifywindows, package-linux-standalone]
# Run even if some prior jobs were skipped, but not if they failed
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
uses: ./.github/workflows/ci_release.yml
name: Release
permissions:
contents: write
packages: write
actions: read
id-token: write
with:
fileversion: ${{ needs.version.outputs.fileversion }}
version: ${{ needs.version.outputs.version }}
secrets: inherit