MLCube container image hash checking & Disable network #960
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: Integration local docker workflow | |
on: pull_request_target | |
jobs: | |
authorize: | |
environment: | |
'testing-external-code' | |
runs-on: ubuntu-latest | |
steps: | |
- run: true | |
setup: | |
needs: authorize | |
name: local-docker-deploy | |
runs-on: ubuntu-latest | |
env: | |
IMAGE_NAME: medperf-api:test | |
MOCK_USERS_PASSWORD: ${{ secrets.MEDPERF_MOCK_USERS_PASSWORD }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.9' | |
- name: Setup Chrome | |
run: | | |
sudo apt-get install -y wget | |
wget -O chrome.deb https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_114.0.5735.198-1_amd64.deb | |
sudo dpkg -i chrome.deb | |
rm chrome.deb | |
- name: Install Singularity | |
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.example .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: 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 -e MOCK_USERS_PASSWORD medperf_api sh -c "pip install -r test-requirements.txt && python seed.py --server https://127.0.0.1:8080 --cert cert.crt" | |
- 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 |