domjtalbot/nx-mesh

View on GitHub
.github/workflows/main.yml

Summary

Maintainability
Test Coverage
name: 'Main'

on:
  push:
    branches:
      - main

  workflow_dispatch:

concurrency:
  group: main--${{ github.workflow }}--${{ github.ref }}

env:
  NX__TRIPPIN__API_KEY: ${{ secrets.NX__TRIPPIN__API_KEY }}
  NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}

jobs:
  lint:
    uses: ./.github/workflows/__lint.yml
    secrets: inherit
    with:
      affected: false
      node_version: 'lts/*'
      save_cache: true

  build:
    needs: [lint]
    uses: ./.github/workflows/__build.yml
    secrets: inherit
    strategy:
      matrix:
        node_version: ['lts/*']
    with:
      affected: false
      node_version: ${{ matrix.node_version }}
      save_cache: ${{ matrix.node_version == 'latest' }}

  test:
    needs: [lint, build]
    uses: ./.github/workflows/__test.yml
    secrets: inherit
    strategy:
      matrix:
        node_version: ['lts/*']
    with:
      affected: false
      node_version: ${{ matrix.node_version }}

  e2e:
    needs: [lint, build]
    if: needs.lint.outputs.hasAffectedApps == 'true'
    uses: ./.github/workflows/__e2e.yml
    secrets: inherit
    strategy:
      matrix:
        node_version: ['lts/*']
    with:
      affected: false
      node_version: ${{ matrix.node_version }}

  generators:
    needs: [lint, build]
    if: needs.lint.outputs.isNxMeshAffected == 'true'
    uses: ./.github/workflows/__generators.yml
    secrets: inherit
    strategy:
      matrix:
        node_version: ['lts/*']
    with:
      affected: false
      node_version: ${{ matrix.node_version }}

  code-analysis:
    needs: [lint, build, test, e2e, generators]
    name: Code Analysis
    uses: ./.github/workflows/code-analysis.yml
    secrets: inherit

  changesets:
    needs: [lint, build, test, e2e, generators]
    name: Changesets
    uses: ./.github/workflows/__changesets.yml
    secrets: inherit
    with:
      release: true
      snapshot: true
      snapshot_tag: next

  deploy:
    needs: [lint, build, test, e2e, generators, changesets]
    name: Deploy
    uses: ./.github/workflows/__deploy.yml
    secrets: inherit
    with:
      affected: false
      production: ${{ needs.changesets.outputs.released == 'true' }}