name: Integration on: push: paths-ignore: - 'client/**' - 'doc/**' pull_request: paths-ignore: - 'client/**' - 'doc/**' env: GALAXY_TEST_AMQP_URL: 'amqp://localhost:5672//' GALAXY_TEST_DBURI: 'postgresql://postgres:postgres@localhost:5432/galaxy?client_encoding=utf8' GALAXY_TEST_RAISE_EXCEPTION_ON_HISTORYLESS_HDA: '1' concurrency: group: integration-${{ github.ref }} cancel-in-progress: true jobs: test: name: Test runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ['3.7'] chunk: ['0', '1', '2', '3'] services: postgres: image: postgres:13 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres ports: - 5432:5432 rabbitmq: image: rabbitmq ports: - 5672:5672 steps: - name: Prune unused docker image, volumes and containers run: docker system prune -a -f - name: Clean dotnet folder for space run: rm -Rf /usr/share/dotnet - name: Setup Minikube id: minikube uses: CodingNagger/minikube-setup-action@v1.0.3 with: minikube-version: "1.9.0-0_amd64" - name: Launch Minikube run: eval ${{ steps.minikube.outputs.launcher }} - name: Check pods run: | kubectl get pods - uses: actions/checkout@v2 with: path: 'galaxy root' - uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Get full Python version id: full-python-version shell: bash run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") - name: Cache pip dir uses: actions/cache@v1 id: pip-cache with: path: ~/.cache/pip key: pip-cache-${{ matrix.python-version }}-${{ hashFiles('galaxy root/requirements.txt') }} - name: Cache galaxy venv uses: actions/cache@v2 with: path: .venv key: gxy-venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('galaxy root/requirements.txt') }}-integration - name: Install ffmpeg run: sudo apt-get update && sudo apt-get -y install ffmpeg - name: Run tests run: | . .ci/minikube-test-setup/start_services.sh ./run_tests.sh -integration test/integration -- --num-shards=4 --shard-id=${{ matrix.chunk }} working-directory: 'galaxy root' - uses: actions/upload-artifact@v2 if: failure() with: name: Integration test results (${{ matrix.python-version }}, ${{ matrix.chunk }}) path: 'galaxy root/run_integration_tests.html'