Skip to content

feat: add support for Angular 19 #345

feat: add support for Angular 19

feat: add support for Angular 19 #345

Workflow file for this run

name: CI
on:
merge_group:
types: [checks_requested]
pull_request:
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
install-deps:
name: Install and cache dependencies
if: ${{ !startsWith( github.head_ref || github.ref_name, 'release-please--' ) }}
runs-on: ubuntu-latest
outputs:
node-version: ${{ steps.setup-node.outputs.node-version }}
steps:
- uses: actions/checkout@v4
with:
# We need to fetch all branches and commits so that Nx affected has a base to compare against.
fetch-depth: 0
- uses: actions/setup-node@v4
id: setup-node
with:
node-version-file: '.nvmrc'
# Rebase must happen before installing dependencies.
- name: Rebase current branch
run: node ./scripts/rebase-pr.js
- name: Cache node modules
id: cache
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-${{ steps.setup-node.outputs.node-version }}-modules-${{ hashFiles('package-lock.json') }}
- name: npm install
if: steps.cache.outputs.cache-hit != 'true'
run: npm ci
agents:
name: Bootup Nx Cloud agent
runs-on: ubuntu-latest
needs: install-deps
strategy:
matrix:
agent: [1, 2, 3]
env:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
steps:
- uses: actions/checkout@v4
- name: Retrieve node_modules cache
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-${{ needs.install-deps.outputs.node-version }}-modules-${{ hashFiles('package-lock.json') }}
- name: Start Nx Agent ${{ matrix.agent }}
run: npx nx-cloud start-agent
if: ${{ env.NX_CLOUD_ACCESS_TOKEN }}
env:
NX_VERBOSE_LOGGING: ${{ runner.debug || '' }}
build-coverage-lint:
name: Build, code coverage unit tests, and linting
if: ${{ !startsWith( github.head_ref || github.ref_name, 'release-please--' ) }}
runs-on: ubuntu-latest
needs: install-deps
env:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- run: npx nx-cloud start-ci-run --agent-count=3 --distribute-on="manual"
if: ${{ env.NX_CLOUD_ACCESS_TOKEN }}
env:
NX_VERBOSE_LOGGING: ${{ runner.debug || '' }}
- name: Retrieve node_modules cache
uses: actions/cache/restore@v4
with:
path: node_modules
key: ${{ runner.os }}-node-${{ needs.install-deps.outputs.node-version }}-modules-${{ hashFiles('package-lock.json') }}
- uses: nrwl/nx-set-shas@v4
# Rebase must happen before installing dependencies.
- name: Rebase current branch
run: node ./scripts/rebase-pr.js
- name: Run build, lint, test, and posttest for npm packages
run: |
npx nx affected --target build lint test posttest --configuration ci --parallel 1 --exclude '*,!tag:npm'
env:
NX_VERBOSE_LOGGING: ${{ runner.debug || '' }}
- name: Run lint, test, and posttest for non-npm packages
run: |
npx nx affected --target lint test posttest --configuration ci --parallel 1 --exclude 'tag:npm'
env:
NX_VERBOSE_LOGGING: ${{ runner.debug || '' }}
- name: Stop
if: ${{ always() && env.NX_CLOUD_ACCESS_TOKEN }}
run: npx nx-cloud stop-all-agents
env:
NX_VERBOSE_LOGGING: ${{ runner.debug || '' }}
build:
name: Build
needs: build-coverage-lint
runs-on: ubuntu-latest
if: ${{ always() && !startsWith( github.head_ref || github.ref_name, 'release-please--' ) }}
steps:
- name: Run build
run: |
[ '${{ needs.build-coverage-lint.result }}' == 'success' ] && echo Built. || false
coverage:
name: Code coverage
needs: build-coverage-lint
runs-on: ubuntu-latest
if: ${{ always() && !startsWith( github.head_ref || github.ref_name, 'release-please--' ) }}
steps:
- name: Run code coverage
run: |
[ '${{ needs.build-coverage-lint.result }}' == 'success' ] && echo Code covered. || false
lint:
name: Lint
needs: build-coverage-lint
runs-on: ubuntu-latest
if: ${{ always() && !startsWith( github.head_ref || github.ref_name, 'release-please--' ) }}
steps:
- name: Run lint
run: |
[ '${{ needs.build-coverage-lint.result }}' == 'success' ] && echo Linted. || false
check-workspace:
name: Check dependencies and resources
if: ${{ !cancelled() && !startsWith( github.head_ref || github.ref_name, 'release-please--' ) }}
needs: install-deps
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# We need to fetch all branches and commits so that Nx affected has a base to compare against.
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
# Rebase must happen before installing dependencies.
- name: Rebase current branch
run: node ./scripts/rebase-pr.js
- name: Retrieve node_modules cache
uses: actions/cache/restore@v4
with:
path: node_modules
key: ${{ runner.os }}-node-${{ needs.install-deps.outputs.node-version }}-modules-${{ hashFiles('package-lock.json') }}
- name: Check library dependencies
run: npx skyux-dev check-lib-dependencies
- name: Check library missing peers
run: npx skyux-dev check-lib-missing-peers
- name: Check library resources
run: npx skyux-dev check-lib-resources
format:
name: Check formatting
needs: install-deps
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# We need to fetch all branches and commits so that Nx affected has a base to compare against.
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
# Rebase must happen before installing dependencies.
- name: Rebase current branch
run: node ./scripts/rebase-pr.js
- name: Derive appropriate SHAs for base and head for `nx affected` commands
uses: nrwl/nx-set-shas@v4
- name: Retrieve node_modules cache
uses: actions/cache/restore@v4
with:
path: node_modules
key: ${{ runner.os }}-node-${{ needs.install-deps.outputs.node-version }}-modules-${{ hashFiles('package-lock.json') }}
- name: Check code formatting
run: npx nx format:check
env:
NX_VERBOSE_LOGGING: ${{ runner.debug || '' }}
build-dist:
name: Build packages distribution
needs: install-deps
runs-on: ubuntu-latest
if: ${{ github.event_name != 'pull_request' }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Retrieve node_modules cache
uses: actions/cache/restore@v4
with:
path: node_modules
key: ${{ runner.os }}-node-${{ needs.install-deps.outputs.node-version }}-modules-${{ hashFiles('package-lock.json') }}
- name: Build packages dist
run: npx skyux-dev create-packages-dist
- name: Notify Slack (failure)
if: ${{ failure() }}
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_COLOR: ${{ job.status }}
SLACK_MESSAGE: 'Build packages distribution step failed on branch `${{ github.ref_name }}`.'
SLACK_ICON_EMOJI: ':github:'
SLACK_USERNAME: GitHub
#cor-skyux-notifications
SLACK_CHANNEL: C01GY7ZP4HM
SLACK_FOOTER: 'Blackbaud Sky Build User'
stop-agents:
name: Stop Nx Cloud agents
runs-on: ubuntu-latest
if: ${{ !cancelled() }}
needs: build-coverage-lint
steps:
- name: Stop Nx Cloud agents
run: echo "🛑 ☁️ 🕵️"