diff --git a/.github/workflows/docker-build.yaml b/.github/workflows/docker-build.yaml new file mode 100644 index 00000000..a008fd8a --- /dev/null +++ b/.github/workflows/docker-build.yaml @@ -0,0 +1,74 @@ +name: Docker notebook tests + +on: + pull_request: + branches: [ main ] + +jobs: + tests: + runs-on: ubuntu-latest + timeout-minutes: 45 + steps: + - uses: actions/checkout@v4 + - name: Build the function + run: docker build -t test_function:latest --build-arg TARGETARCH="amd64" -f ./tests/basic/function/Sample-Docker ./tests/basic + - name: Build the containers + run: docker compose -f docker-compose-dev.yaml build + - name: Run the jupyter profile + run: docker compose -f docker-compose-dev.yaml up -d + - name: Give containers time to initialize + shell: bash + run: sleep 90 + - uses: actions/setup-python@v5 + with: + python-version: '3.11' + - name: install dependencies + shell: bash + run: pip install client/ + - name: Run basic tests + shell: bash + run: | + cd tests/basic + for f in *.py; do echo "$f" && python "$f" &>> basic.log; done + done=$(cat basic.log | grep -c "DONE") + if [[ $done == 4 ]] + then + echo "OK" + exit 0 + else + echo "FAILED: One or more programs failed during execution" + cat basic.log + exit 1 + fi + done=$(cat basic.log | grep -c "Completed running pattern") + if [[ $done == 2 ]] + then + echo "OK" + exit 0 + else + echo "FAILED: One or more programs failed during execution" + cat basic.log + exit 1 + fi + cd - + - name: Run experimental tests + shell: bash + run: | + cd tests/experimental + for f in *.py; do echo "$f" && python "$f" &>> experimental.log; done + done=$(cat experimental.log | grep -c "DONE") + if [[ $done == 6 ]] + then + echo "OK" + exit 0 + else + echo "not OK" + cat experimental.log + exit 1 + fi + cd - + - name: Dump logs on failure + if: ${{ failure() }} + run: | + docker compose logs gateway + diff --git a/docker-compose-dev.yaml b/docker-compose-dev.yaml index 25da664e..ec1ce6f3 100644 --- a/docker-compose-dev.yaml +++ b/docker-compose-dev.yaml @@ -1,6 +1,7 @@ # compose config for running images based on local files services: ray-head: + user: "0" container_name: ray-head build: context: ./ diff --git a/docker-compose.yaml b/docker-compose.yaml index 437a605c..de811b19 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,6 +1,7 @@ # compose config on latest release builds services: ray-head: + user: "0" container_name: ray-head image: icr.io/quantum-public/qiskit-serverless/ray-node:${VERSION:-0.14.2}-py310 entrypoint: [