X Tutup
name: CI on: push: branches: master pull_request: env: NODE_VERSION: 20.17.0 jobs: lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - run: npm ci - run: npm run lint env: CI: true test: name: Test on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v4 - name: Use Node.js 16.14.0 uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - run: npm ci - run: npm run build - run: npx jest --maxWorkers 2 --coverage env: CI: true - if: matrix.os == 'ubuntu-latest' uses: codecov/codecov-action@v4 benchmark: name: Benchmark runs-on: ubuntu-latest steps: - name: Lua Install run: sudo apt-get install lua5.3 luajit - name: Add Brew to Path (Required since Nov 2022) run: echo "/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin" >> $GITHUB_PATH - name: Glow Install run: brew install glow # Checkout master & commit - name: Checkout master uses: actions/checkout@v4 with: ref: master path: master - name: Checkout commit uses: actions/checkout@v4 with: path: commit - name: Use Node.js 16.14.0 uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} # NPM # install and build master - name: npm ci master run: npm ci working-directory: master - name: Use local tstl language extensions run: npm i lua-types@latest && npm i -D file:. working-directory: master - name: Build master run: npm run build working-directory: master # install and build commit - name: npm ci commit run: npm ci working-directory: commit - name: Use local tstl language extensions run: npm i -D file:. working-directory: commit - name: Build commit run: npm run build working-directory: commit # Benchmark directory setup - name: Ensure benchmark data dir exists run: mkdir -p ./benchmark/data working-directory: commit - name: Copy commit benchmark to master run: rm -rf ./master/benchmark && cp -rf ./commit/benchmark ./master/benchmark # Run master benchmark first and output to commit benchmark data - name: Build benchmark Lua 5.3 master run: node ../dist/tstl.js -p tsconfig.53.json working-directory: master/benchmark - name: Run benchmark Lua 5.3 master id: benchmark-lua-master run: lua5.3 -- run.lua ../../../commit/benchmark/data/benchmark_master_53.json working-directory: master/benchmark/dist - name: Build benchmark LuaJIT master run: node ../dist/tstl.js -p tsconfig.jit.json working-directory: master/benchmark - name: Run benchmark LuaJIT master id: benchmark-jit-master run: luajit -- run.lua ../../../commit/benchmark/data/benchmark_master_jit.json working-directory: master/benchmark/dist # Run commit benchmark and compare with master - name: Build benchmark Lua 5.3 commit run: node ../dist/tstl.js -p tsconfig.53.json working-directory: commit/benchmark - name: Run benchmark Lua 5.3 commit id: benchmark-lua-commit run: lua5.3 -- run.lua ../data/benchmark_master_vs_commit_53.json ../data/benchmark_master_53.json working-directory: commit/benchmark/dist - name: Build benchmark LuaJIT commit run: node ../dist/tstl.js -p tsconfig.jit.json working-directory: commit/benchmark - name: Run benchmark LuaJIT commit id: benchmark-jit-commit run: luajit -- run.lua ../data/benchmark_master_vs_commit_jit.json ../data/benchmark_master_jit.json working-directory: commit/benchmark/dist - name: Combine benchmark results id: script-combine-results uses: actions/github-script@v7 with: benchmark-result-path-lua: commit/benchmark/data/benchmark_master_vs_commit_53.json benchmark-result-path-jit: commit/benchmark/data/benchmark_master_vs_commit_jit.json result-encoding: string script: | const createBenchmarkCheck = require(`${process.env.GITHUB_WORKSPACE}/commit/.github/scripts/create_benchmark_check.js`); return createBenchmarkCheck({ github, context, core }); - name: Benchmark results run: echo "${{steps.script-combine-results.outputs.result}}" | glow -s dark -w 120 -
X Tutup