start-report #166
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
# Workflow for generating a publishing the TES compliance test report for Funnel | |
# Publishes to https://ohsu-comp-bio.github.io/funnel-compliance/ | |
# This includes the following steps: | |
# 1. build: Build Funnel and store the resulting binary artifact | |
# 2. generate-report: Install tes-compliance-suite and run against each version of TES independently | |
# 3. deploy-report: Use the workflow defined in static.yaml to publish the generated report via Github Pages | |
# Optionally debug via SSH | |
# Ref: https://fleetdm.com/engineering/tips-for-github-actions-usability | |
# | |
# To use this step uncomment and place anywhere in the build steps. The build will pause on this step and | |
# output a ssh address associated with the Github action worker. Helpful for debugging build steps and | |
# and intermediary files/artifacts. | |
# | |
# Example: | |
# Web shell: https://tmate.io/t/q8FU3U9SvmMVxAhMHRyExNhr8 | |
# SSH: ssh q8FU3U9SvmMVxAhMHRyExNhr8@sfo2.tmate.io | |
# | |
# - name: Setup tmate session | |
# uses: mxschmitt/action-tmate@v3 | |
name: Compliance Test | |
on: | |
push: | |
workflow_dispatch: | |
repository_dispatch: | |
types: [start-report] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go 1.x | |
uses: actions/setup-go@v2 | |
with: | |
go-version: ^1.18 | |
- name: Check out code | |
uses: actions/checkout@v3 | |
with: | |
repository: ohsu-comp-bio/funnel | |
ref: feat/v1.1-compliance | |
- name: Build | |
run: go build -v ./ | |
- name: Store funnel | |
uses: actions/upload-artifact@v2 | |
with: | |
name: funnelBin | |
path: funnel | |
generate-report: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
name: funnelBin | |
- name: Start Funnel server | |
run: | | |
chmod +x funnel | |
./funnel server run &> funnel.logs & | |
- uses: actions/checkout@v3 | |
with: | |
repository: 'lbeckman314/tes-compliance-suite' | |
ref: 'feature/tesv1.1' | |
- name: Install TES compliance suite | |
run: | | |
python -m venv venv | |
source venv/bin/activate | |
python setup.py install | |
mkdir reports | |
- name: Test compliance | |
run: | | |
source venv/bin/activate | |
tes-compliance-suite report --version "1.0.0" --version "1.1.0" --server "http://localhost:8000/" \ | |
--output_path reports --serve --uptime 1 | |
- name: Store JSON report | |
uses: actions/upload-artifact@v2 | |
with: | |
name: reports | |
path: reports/* | |
# This will be used by static.yaml as the publishing source | |
- name: Store web report | |
uses: actions/upload-artifact@v2 | |
with: | |
name: web | |
path: compliance_suite/web/* | |
deploy-report: | |
needs: generate-report | |
uses: ./.github/workflows/static.yaml |