Skip to content

start-report

start-report #166

# 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