update tests #337
Workflow file for this run
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
name: ci | |
on: [push, pull_request] | |
jobs: | |
static-code-analysis: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: check out repository | |
uses: actions/checkout@v4 | |
- name: set up miniconda and env | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
python-version: "3.9" | |
mamba-version: "*" | |
auto-update-conda: true | |
activate-environment: htsinfer | |
environment-file: environment-dev.yml | |
auto-activate-base: false | |
- name: display env info | |
run: | | |
conda info -a | |
conda list | |
- name: flake8 | |
run: flake8 | |
- name: pylint | |
run: pylint --rcfile pylint.cfg setup.py htsinfer/ | |
- name: mypy | |
run: mypy htsinfer | |
unit-testing: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash -l {0} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ '3.8', '3.9', '3.10' ] | |
name: unit-testing-Python-${{ matrix.python-version }} | |
steps: | |
- name: check out repository | |
uses: actions/checkout@v3 | |
- name: set up miniconda and env | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
mamba-version: "*" | |
auto-update-conda: true | |
activate-environment: htsinfer | |
environment-file: environment-dev.yml | |
auto-activate-base: false | |
- name: display env info | |
run: | | |
conda info -a | |
conda list | |
- name: run unit tests | |
run: | | |
coverage run --source htsinfer -m pytest | |
coverage xml | |
- name: submit coverage report | |
uses: codecov/codecov-action@v2 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./coverage.xml | |
fail_ci_if_error: true | |
verbose: true | |
integration-testing: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash -l {0} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ '3.8', '3.9', '3.10' ] | |
name: integration-testing-Python-${{ matrix.python-version }} | |
steps: | |
- name: check out repository | |
uses: actions/checkout@v4 | |
- name: set up miniconda and env | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
mamba-version: "*" | |
auto-update-conda: true | |
activate-environment: htsinfer | |
environment-file: environment-dev.yml | |
auto-activate-base: false | |
- name: display env info | |
run: | | |
conda info -a | |
conda list | |
- name: integration test - help screen | |
run: htsinfer --help | |
- name: integration test - single-ended library | |
run: htsinfer --cleanup-regime=KEEP_NONE --verbosity=DEBUG tests/files/adapter_single.fastq | |
- name: integration test - paired-ended library | |
run: htsinfer --cleanup-regime=KEEP_NONE --verbosity=DEBUG tests/files/adapter_{1,2}.fastq | |
publish: | |
name: build and publish app image | |
runs-on: ubuntu-latest | |
if: | | |
github.event_name == 'push' && | |
github.ref == format('refs/heads/{0}', github.event.repository.default_branch) | |
steps: | |
- name: check out repository | |
uses: actions/checkout@v3 | |
- name: generate tag | |
run: | | |
echo "TAG=$(date '+%Y%m%d')" >> $GITHUB_ENV | |
- name: build and publish image | |
id: docker | |
uses: philips-software/[email protected] | |
with: | |
dockerfile: . | |
image-name: "htsinfer" | |
tags: "latest ${{ env.TAG }}" | |
push-branches: "${{ github.event.repository.default_branch }}" | |
env: | |
REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_LOGIN }} | |
REGISTRY_TOKEN: "${{ secrets.DOCKERHUB_TOKEN }}" | |
DOCKER_ORGANIZATION: ${{ secrets.DOCKERHUB_ORG }} | |
GITHUB_ORGANIZATION: ${{ github.repository_owner }} | |
- name: Verify that image was pushed | |
run: | | |
echo "Push indicator: ${{ steps.docker.outputs.push-indicator }}" | |
echo "# Set to 'true' if image was pushed, empty string otherwise" | |
test "${{ steps.docker.outputs.push-indicator }}" == "true" |