mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
The previous package was outdated, preventing us from updating TS. This one also lints YAML and JSON, and applies many more rules to the test files, explaining all the changes in this PR.
91 lines
3.2 KiB
YAML
91 lines
3.2 KiB
YAML
name: Conformance test harness
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
version:
|
|
type: string
|
|
required: false
|
|
default: latest
|
|
description: Version of the Conformance Test Harness that has to be tested against
|
|
branch:
|
|
type: string
|
|
required: false
|
|
description: branch to run tests against (used for matrix strategy)
|
|
ignore_failures:
|
|
type: boolean
|
|
default: false
|
|
description: Return succes even if there are failures?
|
|
required: false
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
type: string
|
|
required: false
|
|
default: latest
|
|
description: Version of the Conformance Test Harness that has to be tested against.
|
|
ignore_failures:
|
|
type: boolean
|
|
default: false
|
|
description: Return succes even if there are failures?
|
|
required: false
|
|
|
|
jobs:
|
|
# Run the Conformance Test Harness and upload output as artifacts to GitHub
|
|
conformance:
|
|
continue-on-error: ${{ inputs.ignore_failures }}
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- name: Use Node.js 16.x
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 16.x
|
|
- name: Check out the project
|
|
uses: actions/checkout@v4.1.1
|
|
with:
|
|
ref: ${{ inputs.branch || github.ref }}
|
|
- name: Install dependencies and run build scripts
|
|
run: npm ci
|
|
- name: Start the server in the background
|
|
run: npm start > server-output.log &
|
|
- name: Create the necessary folders
|
|
run: mkdir -p reports/css
|
|
- name: Pull the conformance harness docker
|
|
run: 'docker pull solidproject/conformance-test-harness:${{ inputs.version }}'
|
|
- name: Wait until the server has started
|
|
run: >
|
|
curl --output /dev/null --silent --head --fail --retry 30
|
|
--retry-connrefused --retry-delay 0 -k http://localhost:3000/
|
|
- name: Create users
|
|
run: npx ts-node test/deploy/createAccountCredentials.ts http://localhost:3000/ >> test/deploy/conformance.env
|
|
- name: Run the test harness
|
|
run: >
|
|
docker run -i --rm
|
|
-v "$(pwd)"/reports/css:/reports
|
|
--env-file=./test/deploy/conformance.env
|
|
--network="host"
|
|
solidproject/conformance-test-harness:${{ inputs.version }}
|
|
--skip-teardown
|
|
--output=/reports
|
|
--target=https://github.com/solid/conformance-test-harness/css
|
|
# Steps below use `always()` to make sure logs get uploaded in case the CTH errors
|
|
- name: Sanitize branch name for artifact upload
|
|
id: sanitize
|
|
if: always()
|
|
uses: yeouchien/sanitize-branch-name-action@v1
|
|
with:
|
|
branch-name: ${{ inputs.branch || github.head_ref }}
|
|
- name: Save the reports
|
|
if: always()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ steps.sanitize.outputs.sanitized-branch-name }} reports
|
|
path: reports
|
|
- name: Save the server output
|
|
if: always()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ steps.sanitize.outputs.sanitized-branch-name }} server output
|
|
path: server-output.log
|