.github/workflows/main.yml
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' }}