chore: run tests on windows and ubuntu in ci #74
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: Build | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- '**' | |
tags: | |
- 'v**' | |
pull_request: | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- name: Prepare Environment | |
run: | | |
corepack enable | |
yarn install | |
env: | |
CI: true | |
- name: Run typecheck | |
run: | | |
yarn build:ts | |
env: | |
CI: true | |
- name: Run linter | |
run: | | |
yarn lint | |
env: | |
CI: true | |
test: | |
name: Tests | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 15 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- windows-latest | |
- ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- name: Prepare Environment | |
run: | | |
corepack enable | |
yarn install | |
env: | |
CI: true | |
- name: Run tests | |
run: | | |
yarn unit | |
env: | |
CI: true | |
build: | |
name: Build binaries | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 20 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- windows-latest | |
- ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
- name: Run build | |
shell: bash | |
env: | |
CI: true | |
PKG_CACHE_PATH: ${{ runner.temp }} | |
run: | | |
corepack enable | |
yarn install | |
yarn build | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.os }} | |
path: deploy | |
release: | |
name: Create Release | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: | |
- build | |
permissions: | |
contents: write | |
steps: | |
- name: Download artifact | |
uses: actions/download-artifact@v4 | |
with: | |
path: deploy | |
- name: Create Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
files: deploy/*/*.zip | |
prerelease: contains(github.ref, '-') | |
fail_on_unmatched_files: true |