Skip to content

lean dependencies for qtp-diversity #83

lean dependencies for qtp-diversity

lean dependencies for qtp-diversity #83

Workflow file for this run

name: docker
on:
push:
branches:
- 'smaller_deblur'
jobs:
docker:
strategy:
matrix:
plugin: ["qp-deblur", "qtp-biom", "qp-target-gene", "qtp-sequencing", "qtp-visualization",
"nginx", "qiita", "plugin_collector"
]
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Login to DockerHub
uses: docker/login-action@v3
with:
registry: harbor.computational.bio.uni-giessen.de
username: ${{ vars.HARBOR_CB_USERNAME }}
password: ${{ secrets.HARBOR_CB_SECRET }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Read version from file
id: vars
run: |
VERSION=$(head -n 1 Images/${{ matrix.plugin }}/${{ matrix.plugin }}.dockerfile | cut -d ":" -f 2- | tr -d " ")
echo "IMAGE_TAG=$VERSION" >> $GITHUB_ENV
cp Images/${{ matrix.plugin }}/start_${{ matrix.plugin }}.sh Images/test_plugin.sh Images/trigger_noconda.py Images/trigger.py Images/nginx/nginx_qiita.conf Images/${{ matrix.plugin }}/requirements.txt .
cp Images/qiita/config_portal.cfg Images/qiita/config_qiita_oidc.cfg Images/qiita/drop_workflows.py Images/qiita/start_plugin.py Images/qiita/start_qiita-initDB.sh Images/qiita/start_qiita.sh .
cp Images/plugin_collector/collect_configs.py Images/plugin_collector/fix_test_db.py Images/plugin_collector/stefan_cert.conf Images/plugin_collector/stefan_csr.conf .
- name: Make tinqiita targets
# second copy of "qiita_server_certificates" is necessary to match path for docker build, first copy for mounting into container
run: |
make ./references/qiita_server_certificates ./references/qp-deblur/reference-gg-raxml-bl.tre ./environments/qiita_db.env ./environments/qiita.env config
cp -r ./references/qiita_server_certificates ./qiita_server_certificates
- name: Build Image (but do not push yet)
uses: docker/build-push-action@v6
with:
context: .
push: false
load: true
file: Images/${{ matrix.plugin }}/${{ matrix.plugin }}.dockerfile
tags: tinqiita/${{ matrix.plugin }}:testcandidate
- name: debug docker
run: |
docker image ls -a
docker ps -a
- name: adapt compose file to select specific plugin
run: |
sed -i "s/MATRIXPLUGIN/${{ matrix.plugin }}/g" compose_github.yaml
sed -i "s|image: janssenlab/${{ matrix.plugin }}:latest|image: tinqiita/${{ matrix.plugin }}:testcandidate|" compose_github.yaml
- name: Run docker compose
if: ${{ !contains('nginx,qiita,plugin_collector', matrix.plugin) }}
uses: hoverkraft-tech/compose-action@v2.0.1
with:
compose-file: "compose_github.yaml"
services: |
nginx
- name: Execute tests in the running services (wait till qiita plugins are registered)
if: ${{ !contains('nginx,qiita,plugin_collector', matrix.plugin) }}
run: |
sleep 5
docker compose exec qiita /bin/bash -c "cat /logs/*; cat /qiita_plugins/*"
docker compose exec ${{ matrix.plugin }} /bin/bash -c "PLUGIN=${{ matrix.plugin }} bash /test_plugin.sh"
- name: Push production image (only if tests passed)
if: success()
uses: docker/build-push-action@v6
with:
context: .
push: true
file: Images/${{ matrix.plugin }}/${{ matrix.plugin }}.dockerfile
tags: |
harbor.computational.bio.uni-giessen.de/tinqiita/${{ matrix.plugin }}:${{ env.IMAGE_TAG }}
harbor.computational.bio.uni-giessen.de/tinqiita/${{ matrix.plugin }}:latest