Skip to content

FL Support

FL Support #1583

Workflow file for this run

name: Integration local docker workflow
on: pull_request
jobs:
setup:
name: local-docker-deploy
runs-on: ubuntu-latest
env:
IMAGE_NAME: medperf-api:test
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: '3.9'
- name: Install Singularity
working-directory: ..
run: |
sudo apt-get update
sudo apt-get install -y build-essential libssl-dev uuid-dev libgpgme11-dev \
squashfs-tools libseccomp-dev wget pkg-config git cryptsetup debootstrap libglib2.0-dev
wget https://go.dev/dl/go1.17.11.linux-amd64.tar.gz
sudo tar --directory=/usr/local -xzvf go1.17.11.linux-amd64.tar.gz
export PATH=/usr/local/go/bin:$PATH
wget https://github.com/sylabs/singularity/releases/download/v3.10.0/singularity-ce-3.10.0.tar.gz
tar -xzvf singularity-ce-3.10.0.tar.gz
cd singularity-ce-3.10.0
./mconfig
cd builddir
make
sudo make install
- name: Install dependencies
working-directory: .
run: |
python -m pip install --upgrade pip
pip install -e cli/
pip install -r cli/test-requirements.txt
pip install -r server/requirements.txt
pip install -r server/test-requirements.txt
- name: Set server environment vars
working-directory: ./server
run: cp .env.local.local-auth.sqlite .env
- name: Generate SSL certificate
working-directory: ./server
run: sh setup-dev-server.sh -c cert.crt -k cert.key -d 0
- name: Build container image
working-directory: ./server
run: |
cp ../mock_tokens/tokens.json tokens.json
docker build -t ${{ env.IMAGE_NAME }} -f Dockerfile.gha .
- name: Run server in background
working-directory: ./server
run: PORT=8080 && docker run --name medperf_api -d -p 8000:${PORT} -e PORT=${PORT} -e SSL_FLAGS="--certfile=cert.crt --keyfile=cert.key" ${{ env.IMAGE_NAME }}
- name: Run server integration tests
working-directory: ./server
run: docker exec medperf_api sh -c "pip install -r test-requirements.txt && python seed.py --server https://127.0.0.1:8080 --cert cert.crt --tokens tokens.json"
- name: Run chestxray demo
working-directory: .
run: sh cli/cli_chestxray_tutorial_test.sh -f
- name: Run client integration tests
working-directory: .
run: sh cli/cli_tests.sh -f