name: Validate JavaScript on: pull_request: push: branches: - main - 'release-*' workflow_dispatch: env: FORCE_COLOR: 3 jobs: benchmark: name: Benchmark [${{ matrix.os }}] runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v3 - name: Setup uses: ./.github/actions/setup-js - name: Restore emsdk uses: ./.github/actions/cache-emsdk - name: yarn benchmark run: yarn benchmark working-directory: javascript build: name: Build [${{ matrix.os }}] runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v3 - name: Setup uses: ./.github/actions/setup-js - name: Restore emsdk uses: ./.github/actions/cache-emsdk - name: yarn build run: yarn build --verbose working-directory: javascript test: name: Test [${{ matrix.os }}] runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v3 - name: Setup uses: ./.github/actions/setup-js - name: Restore emsdk uses: ./.github/actions/cache-emsdk - name: yarn test run: yarn test working-directory: javascript lint: name: ESLint (All Packages) runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup uses: ./.github/actions/setup-js - name: yarn lint run: yarn lint typecheck: name: Typecheck runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup uses: ./.github/actions/setup-js - name: yarn tsc run: yarn tsc working-directory: javascript pack: name: Pack runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup uses: ./.github/actions/setup-js - name: Restore emsdk uses: ./.github/actions/cache-emsdk - name: yarn pack run: yarn pack --filename yoga-layout.tar.gz working-directory: javascript - uses: actions/upload-artifact@v4 with: name: npm-package path: javascript/yoga-layout.tar.gz