feat: Add ID tests to CI (#456)
* tools: Add script to run ID tests * ci: Add game ID tests * tools/id-tests: Import games directly from file * ci/id: Update ID tests to official repo * ci/id: Cache rust deps even if tests fail * Add newlines
This commit is contained in:
parent
6ecb809512
commit
68f9c01886
|
@ -0,0 +1,36 @@
|
||||||
|
name: ID tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "lib/games.js"
|
||||||
|
- ".github/workflows/id-tests.yml" # This action
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "lib/games.js"
|
||||||
|
- ".github/workflows/id-tests.yml" # This action
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Use Node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 18.x
|
||||||
|
|
||||||
|
- name: Cache rust dependencies
|
||||||
|
uses: Swatinem/rust-cache@v2
|
||||||
|
with:
|
||||||
|
cache-on-failure: 'true'
|
||||||
|
|
||||||
|
- name: Install ID tester
|
||||||
|
run: cargo install --git https://github.com/gamedig/rust-gamedig.git gamedig-id-tests
|
||||||
|
|
||||||
|
- name: Run ID tests
|
||||||
|
run: node tools/run-id-tests.js
|
|
@ -0,0 +1,18 @@
|
||||||
|
import { spawnSync } from 'node:child_process';
|
||||||
|
import process from 'node:process';
|
||||||
|
|
||||||
|
// Import directly from file so that this script works without dependencies installed.
|
||||||
|
import { games } from './../lib/games.js';
|
||||||
|
|
||||||
|
const ID_TEST_BIN = process.env["GAMEDIG_ID_TESTER"] || "gamedig-id-tests";
|
||||||
|
|
||||||
|
const result = spawnSync(ID_TEST_BIN, {
|
||||||
|
input: JSON.stringify(games),
|
||||||
|
stdio: ['pipe', 'inherit', 'inherit'],
|
||||||
|
});
|
||||||
|
|
||||||
|
if (result.error) {
|
||||||
|
throw result.error;
|
||||||
|
}
|
||||||
|
|
||||||
|
process.exit(result.status);
|
Loading…
Reference in New Issue