Files
CommunitySolidServer/.github/workflows/cth-test.yml
Joachim Van Herwegen 6248ed0938 refactor: Replace linting configurations
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.
2023-11-02 09:49:17 +01:00

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