chore(deps-dev): bump commitlint from 19.0.3 to 19.3.0 #743
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
types: [opened, synchronize] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
NX_CLOUD_DISTRIBUTED_EXECUTION_AGENT_COUNT: 3 | |
NX_CLOUD_DISTRIBUTED_EXECUTION: true | |
NX_REJECT_UNKNOWN_LOCAL_CACHE: 0 | |
CI: true | |
jobs: | |
deps: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
name: Deps [${{ matrix.os }}] | |
permissions: | |
contents: read | |
actions: read | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout [Pull Request] | |
uses: actions/checkout@v4 | |
if: github.event_name == 'pull_request' | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 0 | |
- name: Checkout [Main] | |
uses: actions/checkout@v4 | |
if: github.event_name != 'pull_request' | |
with: | |
fetch-depth: 0 | |
- name: Derive SHAs | |
uses: nrwl/nx-set-shas@v4 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- name: Install pnpm | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: latest | |
run_install: false | |
- name: Get pnpm store directory | |
id: pnpm-cache | |
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- name: Setup pnpm cache | |
uses: actions/cache@v4 | |
id: cache | |
with: | |
path: | | |
${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
node_modules/ | |
key: ${{ matrix.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: ${{ matrix.os }}-pnpm-store- | |
- name: Install dependencies | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: pnpm install --no-frozen-lockfile | |
- name: Check format | |
run: pnpm nx format:check --all | |
set-agents: | |
name: Set Agent Matrix | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- name: Calculate Matrix | |
id: set-matrix | |
run: | | |
AGENTS_JSON_ARRAY=$(node -e " | |
const agents = Array.from(new Array($NX_CLOUD_DISTRIBUTED_EXECUTION_AGENT_COUNT)).map((_, i) => i + 1); | |
console.log(JSON.stringify(agents)); | |
") | |
echo $AGENTS_JSON_ARRAY | |
echo "matrix=$AGENTS_JSON_ARRAY" >> $GITHUB_OUTPUT | |
agents: | |
name: Agent ${{ matrix.agent }} [${{ matrix.os }}] | |
needs: [set-agents, deps] | |
runs-on: ${{ matrix.os }} | |
permissions: | |
contents: read | |
actions: read | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
agent: | |
- ${{ fromJson(needs.set-agents.outputs.matrix) }} | |
steps: | |
- name: Checkout [Pull Request] | |
uses: actions/checkout@v4 | |
if: github.event_name == 'pull_request' | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 0 | |
- name: Checkout [Main] | |
uses: actions/checkout@v4 | |
if: github.event_name != 'pull_request' | |
with: | |
fetch-depth: 0 | |
- name: Derive SHAs | |
uses: nrwl/nx-set-shas@v4 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- name: Install pnpm | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: latest | |
run_install: false | |
- name: Get pnpm store directory | |
id: pnpm-cache | |
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- name: Restore pnpm cache | |
uses: actions/cache/restore@v4 | |
id: cache | |
with: | |
path: | | |
${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
node_modules/ | |
key: ${{ matrix.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: ${{ matrix.os }}-pnpm-store- | |
- name: Install dependencies | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: pnpm install --no-frozen-lockfile | |
- name: Install linux dependencies (ubuntu-latest) | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install gdb nasm -y | |
- name: Install macos dependencies (macos-latest) | |
if: matrix.os == 'macos-latest' | |
run: | | |
brew install llvm gdb nasm | |
ln -s "$(brew --prefix llvm)/bin/clang-format" "/usr/local/bin/clang-format" | |
ln -s "$(brew --prefix llvm)/bin/clang-tidy" "/usr/local/bin/clang-tidy" | |
- name: Run Agent (unix) | |
run: npx nx-cloud start-agent | |
main: | |
strategy: | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest] | |
fail-fast: false | |
name: Main Job [${{ matrix.os }}] | |
env: | |
NX_CACHE_DIRECTORY: tmp/${{ matrix.os }} | |
permissions: | |
contents: read | |
actions: read | |
defaults: | |
run: | |
shell: bash | |
runs-on: ${{ matrix.os }} | |
needs: [set-agents, deps] | |
steps: | |
- name: Checkout [Pull Request] | |
uses: actions/checkout@v4 | |
if: github.event_name == 'pull_request' | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 0 | |
- name: Checkout [Main] | |
uses: actions/checkout@v4 | |
if: github.event_name != 'pull_request' | |
with: | |
fetch-depth: 0 | |
- name: Derive SHAs | |
uses: nrwl/nx-set-shas@v4 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- name: Install pnpm | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: latest | |
run_install: false | |
- name: Get pnpm store directory | |
id: pnpm-cache | |
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- name: Restore pnpm cache | |
uses: actions/cache/restore@v4 | |
id: cache | |
with: | |
path: | | |
${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
node_modules/ | |
key: ${{ matrix.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: ${{ matrix.os }}-pnpm-store- | |
- name: Nx cache | |
uses: actions/cache@v4 | |
id: nx_cache | |
with: | |
path: ${{ env.NX_CACHE_DIRECTORY }} | |
key: ${{ matrix.os }}-nx-cache-${{ hashFiles('tmp/**') }} | |
restore-keys: ${{ matrix.os }}-nx-cache | |
- name: Install dependencies | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: pnpm install --no-frozen-lockfile | |
- name: Start Agents (unix) | |
if: needs.agents.result != 'failure' && | |
needs.agents.result != 'cancelled' && | |
needs.agents.result != 'skipped' && | |
matrix.os != 'windows-latest' | |
run: npx nx-cloud start-ci-run --stop-agents-after=e2e | |
- name: Run Test Agents (unix) | |
id: agents | |
run: | | |
pnpm nx affected \ | |
--nx-bail \ | |
--base=$NX_BASE \ | |
--head=$NX_HEAD \ | |
--configuration=ci \ | |
--output-style=stream \ | |
--parallel=$NX_CLOUD_DISTRIBUTED_EXECUTION_AGENT_COUNT \ | |
--no-cloud \ | |
-t lint build test | |
- name: Stop Agents | |
if: always() | |
run: npx nx-cloud stop-all-agents | |
- name: Upload coverage reports to Codecov | |
if: matrix.os == 'ubuntu-latest' | |
uses: codecov/codecov-action@v4 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
- name: Tar dist | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
if [ -d "dist" ]; then | |
tar -cvf dist.tar dist | |
else | |
mkdir dist | |
tar -cvf dist.tar dist | |
fi | |
- name: Upload dist | |
if: matrix.os == 'ubuntu-latest' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dist | |
path: dist.tar | |
e2e: | |
name: E2E [${{ matrix.os }}] | |
needs: [main, agents] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest] | |
fail-fast: false | |
env: | |
NX_CLOUD_DISTRIBUTED_EXECUTION: false | |
NX_CACHE_DIRECTORY: tmp/${{ matrix.os }} | |
permissions: | |
contents: read | |
actions: read | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout [Pull Request] | |
uses: actions/checkout@v4 | |
if: github.event_name == 'pull_request' | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 0 | |
- name: Checkout [Main] | |
uses: actions/checkout@v4 | |
if: github.event_name != 'pull_request' | |
with: | |
fetch-depth: 0 | |
- name: Derive SHAs | |
uses: nrwl/nx-set-shas@v4 | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- name: Install pnpm | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: latest | |
run_install: false | |
- name: Get pnpm store directory | |
id: pnpm-cache | |
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- name: Restore pnpm cache | |
uses: actions/cache/restore@v4 | |
id: cache | |
with: | |
path: | | |
${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
node_modules/ | |
key: ${{ matrix.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: ${{ matrix.os }}-pnpm-store- | |
- name: Nx cache | |
uses: actions/cache@v4 | |
id: nx_cache | |
with: | |
path: ${{ env.NX_CACHE_DIRECTORY }} | |
key: ${{ matrix.os }}-nx-cache-${{ hashFiles('tmp/**') }} | |
restore-keys: ${{ matrix.os }}-nx-cache | |
- name: Install dependencies | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: pnpm install --no-frozen-lockfile | |
- name: Install linux dependencies (ubuntu-latest) | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install gdb -y | |
- name: Install macos dependencies (macos-latest) | |
if: matrix.os == 'macos-latest' | |
run: | | |
brew install llvm gdb | |
ln -s "$(brew --prefix llvm)/bin/clang-format" "/usr/local/bin/clang-format" | |
ln -s "$(brew --prefix llvm)/bin/clang-tidy" "/usr/local/bin/clang-tidy" | |
- name: Install MSYS2 (windows-latest) | |
if: matrix.os == 'windows-latest' | |
shell: pwsh | |
run: | | |
Add-Content $env:GITHUB_PATH "C:\msys64" | |
Add-Content $env:GITHUB_PATH "C:\msys64\usr\bin" | |
Add-Content $env:GITHUB_PATH "C:\msys64\ucrt64\bin" | |
- name: Install windows dependencies (windows-latest) | |
if: matrix.os == 'windows-latest' | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: UCRT64 | |
update: true | |
release: false | |
pacboy: >- | |
gcc:u | |
make:u | |
cmake:u | |
clang:u | |
clang-tools-extra:u | |
gdb:u | |
- name: Start registry | |
env: | |
NX_NO_CLOUD: true | |
run: pnpm nx local-registry & | |
- name: Run e2e | |
env: | |
NX_NO_CLOUD: true | |
SKIP: true | |
run: pnpm nx affected-e2e | |
- name: Stop registry | |
env: | |
NX_NO_CLOUD: true | |
run: pnpm nx stop-local-registry | |
publish: | |
name: Publish | |
runs-on: ubuntu-latest | |
needs: [e2e] | |
env: | |
NX_CLOUD_DISTRIBUTED_EXECUTION: false | |
NX_SKIP_NX_CACHE: true | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
permissions: | |
contents: write | |
actions: write | |
id-token: write | |
steps: | |
- name: Checkout [Pull Request] | |
uses: actions/checkout@v4 | |
if: github.event_name == 'pull_request' && startsWith(github.ref, 'refs/heads/main') | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 0 | |
- name: Checkout [Main] | |
uses: actions/checkout@v4 | |
if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/heads/main') | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.PAT }} | |
- name: Derive SHAs | |
if: startsWith(github.ref, 'refs/heads/main') | |
uses: nrwl/nx-set-shas@v4 | |
- name: Install Node | |
if: startsWith(github.ref, 'refs/heads/main') | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
registry-url: 'https://registry.npmjs.org' | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: Install pnpm | |
if: startsWith(github.ref, 'refs/heads/main') | |
uses: pnpm/action-setup@v3 | |
id: pnpm-install | |
with: | |
version: latest | |
run_install: false | |
- name: Get pnpm store directory | |
if: startsWith(github.ref, 'refs/heads/main') | |
id: pnpm-cache | |
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- name: Restore pnpm cache | |
uses: actions/cache/restore@v4 | |
if: startsWith(github.ref, 'refs/heads/main') | |
id: cache | |
with: | |
path: | | |
${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
node_modules/ | |
key: ubuntu-latest-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: ubuntu-latest-pnpm-store- | |
- name: Install dependencies | |
if: startsWith(github.ref, 'refs/heads/main') && steps.cache.outputs.cache-hit != 'true' | |
run: pnpm install --no-frozen-lockfile | |
- name: Build packages | |
if: startsWith(github.ref, 'refs/heads/main') | |
run: | | |
pnpm nx run-many \ | |
--nx-bail \ | |
--configuration=ci \ | |
--output-style=stream \ | |
--no-dte \ | |
--no-cloud \ | |
--skip-nx-cache \ | |
--projects=plugins/* \ | |
-t build | |
- name: Check npm auth | |
if: startsWith(github.ref, 'refs/heads/main') | |
run: npm whoami | |
- name: Setup Git | |
if: startsWith(github.ref, 'refs/heads/main') | |
uses: fregante/setup-git-user@v2 | |
- name: Semantic Versioning | |
if: startsWith(github.ref, 'refs/heads/main') | |
run: pnpm nx release --skip-publish | |
shell: bash | |
env: | |
SKIP_TESTS: true | |
- name: Publish | |
if: startsWith(github.ref, 'refs/heads/main') | |
run: pnpm nx release publish | |
shell: bash | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
NPM_CONFIG_PROVENANCE: true | |
- name: Delete Artifacts | |
uses: geekyeggo/delete-artifact@v4 | |
with: | |
name: '*' |