Equicord/.github/workflows/test.yml
2024-05-07 04:54:25 +02:00

82 lines
2.1 KiB
YAML

name: test
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
DetermineRunner:
name: Determine Runner
if: ${{ github.event_name == 'push' }}
runs-on: ubuntu-latest
outputs:
runner: ${{ steps.set-runner.outputs.runner }}
steps:
- name: Determine which runner to use
id: set-runner
uses: benjaminmichaelis/get-soonest-available-runner@v1.1.0
with:
primary-runner: "self-hosted"
fallback-runner: "ubuntu-latest"
min-available-runners: 1
github-token: ${{ env.GITHUB_TOKEN }}
env:
GITHUB_TOKEN: ${{ secrets.ETOKEN }}
Test:
name: Test For Pushes
needs: DetermineRunner
if: ${{ github.event_name == 'push' }}
runs-on: ${{ needs.DetermineRunner.outputs.runner}}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3 # Install pnpm using packageManager key in package.json
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Lint & Test if desktop version compiles
run: pnpm test
- name: Test if web version compiles
run: pnpm buildWeb
- name: Test if plugin structure is valid
run: pnpm generatePluginJson
TestForPRs:
name: Test For Pull Requests
if: ${{ github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3 # Install pnpm using packageManager key in package.json
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Lint & Test if desktop version compiles
run: pnpm test
- name: Test if web version compiles
run: pnpm buildWeb
- name: Test if plugin structure is valid
run: pnpm generatePluginJson