chore(ci): update workflows, use .nvmrc

This commit is contained in:
2025-09-06 00:51:00 +03:00
parent 6464f3a2ca
commit 4b346cef6e
6 changed files with 125 additions and 131 deletions

View File

@@ -2,39 +2,39 @@ name: Build
on: on:
push: push:
branches: [ main ] branches: [main]
pull_request: pull_request:
branches: [ main ] branches: [main]
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: '20' node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
- name: Lint code - name: Lint code
run: npm run lint run: npm run lint
- name: Generate themes - name: Generate themes
run: npm run generate run: npm run generate
- name: Validate output - name: Validate output
run: npm run validate run: npm run validate
- name: Check for uncommitted changes - name: Check for uncommitted changes
run: | run: |
if ! git diff --quiet; then if ! git diff --quiet; then
echo "Generated files have uncommitted changes!" echo "Generated files have uncommitted changes!"
git diff git diff
exit 1 exit 1
fi fi

View File

@@ -2,25 +2,22 @@ name: CI
on: on:
push: push:
branches: [ main, develop ] branches: [main, develop]
pull_request: pull_request:
branches: [ main ] branches: [main]
env:
NODE_VERSION: '22'
jobs: jobs:
lint: lint:
name: Lint & Format Check name: Lint & Format Check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: ${{ env.NODE_VERSION }} node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@@ -35,13 +32,13 @@ jobs:
name: Generate Themes name: Generate Themes
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: ${{ env.NODE_VERSION }} node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@@ -66,13 +63,13 @@ jobs:
name: Test Web Components name: Test Web Components
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: ${{ env.NODE_VERSION }} node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@@ -84,7 +81,7 @@ jobs:
run: npm run test:e2e run: npm run test:e2e
- name: Upload Playwright report - name: Upload Playwright report
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: always() if: always()
with: with:
name: playwright-report name: playwright-report
@@ -98,13 +95,13 @@ jobs:
matrix: matrix:
os: [ubuntu-latest, macos-latest] os: [ubuntu-latest, macos-latest]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: ${{ env.NODE_VERSION }} node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@@ -130,33 +127,33 @@ jobs:
name: Security Scan name: Security Scan
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Run Trivy vulnerability scanner - name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master uses: aquasecurity/trivy-action@master
with: with:
scan-type: 'fs' scan-type: "fs"
scan-ref: '.' scan-ref: "."
format: 'sarif' format: "sarif"
output: 'trivy-results.sarif' output: "trivy-results.sarif"
- name: Upload Trivy scan results to GitHub Security tab - name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v3 uses: github/codeql-action/upload-sarif@f1f6e5f6af878fb37288ce1c627459e94dbf7d01 # v3.30.1
with: with:
sarif_file: 'trivy-results.sarif' sarif_file: "trivy-results.sarif"
build-stats: build-stats:
name: Build Statistics name: Build Statistics
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main' if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: ${{ env.NODE_VERSION }} node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci

View File

@@ -2,36 +2,36 @@ name: CLI Verify
on: on:
push: push:
branches: [ main ] branches: [main]
pull_request: pull_request:
branches: [ main ] branches: [main]
jobs: jobs:
cli-verify: cli-verify:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: '20' node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
- name: Generate themes - name: Generate themes
run: npm run generate run: npm run generate
- name: Run installer - name: Run installer
run: | run: |
export HOME=$(mktemp -d) export HOME=$(mktemp -d)
./cli/install.sh ./cli/install.sh
- name: Run verifier - name: Run verifier
run: | run: |
export HOME=$(mktemp -d) export HOME=$(mktemp -d)
./cli/install.sh ./cli/install.sh
ENGINE=docker ./verify/verify.sh ENGINE=docker ./verify/verify.sh

View File

@@ -2,25 +2,25 @@ name: Commitlint
on: on:
pull_request: pull_request:
branches: [ main ] branches: [main]
jobs: jobs:
commitlint: commitlint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: '20' node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
- name: Lint commit messages - name: Lint commit messages
run: npx commitlint --from HEAD~${{ github.event.pull_request.commits }} --to HEAD --verbose run: npx commitlint --from HEAD~${{ github.event.pull_request.commits }} --to HEAD --verbose

View File

@@ -3,23 +3,20 @@ name: Release
on: on:
push: push:
tags: tags:
- 'v*' - "v*"
env:
NODE_VERSION: '22'
jobs: jobs:
build: build:
name: Build Release Assets name: Build Release Assets
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: ${{ env.NODE_VERSION }} node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@@ -63,14 +60,14 @@ jobs:
cd .. cd ..
- name: Upload build artifacts - name: Upload build artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with: with:
name: release-archives name: release-archives
path: dist/*.tar.gz path: dist/*.tar.gz
retention-days: 30 retention-days: 30
- name: Upload checksums - name: Upload checksums
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with: with:
name: checksums name: checksums
path: dist/checksums.txt path: dist/checksums.txt
@@ -85,13 +82,13 @@ jobs:
os: [ubuntu-latest, macos-latest] os: [ubuntu-latest, macos-latest]
variant: [dark-medium, light-medium] variant: [dark-medium, light-medium]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: ${{ env.NODE_VERSION }} node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@@ -115,18 +112,18 @@ jobs:
permissions: permissions:
contents: write contents: write
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Download build artifacts - name: Download build artifacts
uses: actions/download-artifact@v4 uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with: with:
name: release-archives name: release-archives
path: dist/ path: dist/
- name: Download checksums - name: Download checksums
uses: actions/download-artifact@v4 uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with: with:
name: checksums name: checksums
path: dist/ path: dist/
@@ -181,7 +178,7 @@ jobs:
echo "All packages include 6 theme variants (dark/light × hard/medium/soft)." >> CHANGELOG.md echo "All packages include 6 theme variants (dark/light × hard/medium/soft)." >> CHANGELOG.md
- name: Create Release - name: Create Release
uses: softprops/action-gh-release@v1 uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
with: with:
files: | files: |
dist/*.tar.gz dist/*.tar.gz

View File

@@ -2,39 +2,39 @@ name: Snapshots
on: on:
push: push:
branches: [ main ] branches: [main]
pull_request: pull_request:
branches: [ main ] branches: [main]
jobs: jobs:
snapshots: snapshots:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with: with:
node-version: '20' node-version-file: ".nvmrc"
cache: 'npm' cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
- name: Install Playwright browsers - name: Install Playwright browsers
run: npx playwright install --with-deps run: npx playwright install --with-deps
- name: Generate themes - name: Generate themes
run: npm run generate run: npm run generate
- name: Run Playwright tests - name: Run Playwright tests
run: npm run snapshots run: npm run snapshots
- name: Upload snapshots - name: Upload snapshots
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: failure() if: failure()
with: with:
name: playwright-report name: playwright-report
path: playwright-report/ path: playwright-report/
retention-days: 30 retention-days: 30