Skip to content

ci(ga): cleanup caches after uploading to npm #11

ci(ga): cleanup caches after uploading to npm

ci(ga): cleanup caches after uploading to npm #11

Workflow file for this run

name: Pull Request Validation
on:
pull_request:
types:
- opened
- reopened
- synchronize
- ready_for_review
- converted_to_draft
paths-ignore:
- '**/*.md'
- LICENSE
- '**/*.gitignore'
- .editorconfig
- docs/**
env:
APP_NAME: 'rs-compiler'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
lint:
name: Lint code
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/setup
- name: Lint code
run: pnpm run -r lint:check
format:
name: Format code
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/setup
- name: Format code
run: pnpm run -r format:check
test:
name: Run tests
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/setup
- name: Run tests
run: pnpm run -r --filter='!@stylexswc/rs-compiler' test
env:
RUST_MIN_STACK: 16777216
build-wasm:
name: Build SWC plugin
runs-on: ubuntu-latest
needs: [test, lint, format]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/setup
- name: Build project
run: pnpm run --filter @stylexswc/swc-plugin build
- name: Check build artifacts
run: pnpm run --filter @stylexswc/swc-plugin check:artifacts
build-rs:
name: Build RS compiler
runs-on: ${{ matrix.settings.host }}
needs: [test, lint, format]
strategy:
fail-fast: false
matrix:
settings:
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/setup
- name: Build project
run: pnpm run --filter @stylexswc/rs-compiler build
- name: Check build artifacts
run: pnpm run --filter @stylexswc/rs-compiler check:artifacts
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: bindings-${{ matrix.settings.target }}
path: crates/stylex-rs-compiler/dist/${{ env.APP_NAME }}.*.node
if-no-files-found: error
benchmark:
name: Benchmark on ${{ matrix.settings.target }} - node@20
needs:
- build-rs
- build-wasm
strategy:
fail-fast: false
matrix:
settings:
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
runs-on: ${{ matrix.settings.host }}
permissions:
contents: write
pull-requests: write
repository-projects: write
steps:
- uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/setup
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: bindings-${{ matrix.settings.target }}
path: crates/stylex-rs-compiler/dist
- name: Download previous benchmark data
uses: actions/cache@v4
with:
path: ./cache
key: ${{ matrix.settings.target }}-benchmark
- name: Run benchmarks
run: pnpm run --filter @stylexswc/rs-compiler bench
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'benchmarkjs'
output-file-path: 'crates/stylex-rs-compiler/benchmark/results/output.txt'
external-data-json-path: './cache/benchmark-data.json'
fail-on-alert: true
comment-on-alert: true
alert-comment-cc-users: '@Dwlad90'
summary-always: true
github-token: ${{ secrets.GITHUB_TOKEN }}
alert-threshold: '150%'
fail-threshold: '175%'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}