ADT: Add Biomarker/Pathology GX validation suites #656
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
# This is a basic workflow to help you get started with Actions | |
name: CI | |
on: | |
push: | |
branches: ["dev"] | |
# Match tags that resemble a version | |
tags: ['[0-9]+\.[0-9]+\.[0-9]+'] | |
pull_request: | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
# test job includes unit tests and coverage | |
pre-commit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: { fetch-depth: 0 } # deep clone for setuptools-scm | |
- uses: actions/setup-python@v5 | |
with: { python-version: "3.9" } | |
- name: Run static analysis and format checkers | |
run: pipx run pre-commit run --all-files --show-diff-on-failure | |
test: | |
needs: [pre-commit] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: | |
- "3.8" | |
- "3.9" | |
# Support for Python 3.10 and 3.11 is temproarily disabled | |
# - "3.10" | |
# - "3.11" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install . | |
pip install pytest pytest-cov | |
- name: Test with pytest | |
run: | | |
pytest tests/ --cov=agoradatatools --cov-report=html | |
- name: Upload pytest test results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pytest-results-${{ matrix.python-version }} | |
path: htmlcov | |
# Use always() to always run this step to publish test results when there are test failures | |
if: ${{ always() }} | |
# build job includes integration test | |
build: | |
needs: [test] | |
# The type of runner that the job will run on | |
name: test data processing | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.9" | |
- run: pip install -U setuptools | |
- run: pip install . | |
- run: adt test_config.yaml --upload --platform GITHUB --run_id ${{ github.run_id }} --token ${{secrets.SYNAPSE_PAT}} | |
ghcr-publish: | |
needs: [build, test] | |
if: ${{ github.event_name == 'push' && contains(github.ref, 'refs/tags/') }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: | | |
ghcr.io/${{ github.repository }} | |
tags: | | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=semver,pattern={{major}} | |
type=ref,event=branch | |
type=sha | |
latest | |
- name: Publish Docker Image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
build-args: | | |
TARBALL_PATH=${{ needs.prepare.outputs.tarball-path }} | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} |