name: Test on: # Run CI on all pushes to the master and release/** branches, and on all new # pull requests, and on all pushes to pull requests (even if a pull request # is not against master). push: branches: - "master" - "release/**" pull_request: defaults: run: shell: bash jobs: unit-test: runs-on: ubuntu-20.04 name: "unit tests" steps: - name: Checkout uses: actions/checkout@v2 - name: Unit Tests working-directory: install run: find ./ -type f -name "*-test.sh" -exec "./{}" \; integration-test: runs-on: ubuntu-20.04 name: "integration test" strategy: max-parallel: 1 fail-fast: false matrix: include: - compose_version: '1.28.0' compose_path: '/usr/local/bin' - compose_version: 'v2.0.1' compose_path: '/usr/local/lib/docker/cli-plugins' steps: - name: Checkout uses: actions/checkout@v2 - name: Get Compose run: | # Always remove `docker compose` support as that's the newer version # and comes installed by default nowadays. sudo rm -f "/usr/local/lib/docker/cli-plugins/docker-compose" sudo rm -f "${{ matrix.compose_path }}/docker-compose" sudo mkdir -p "${{ matrix.compose_path }}" sudo curl -L https://github.com/docker/compose/releases/download/${{ matrix.compose_version }}/docker-compose-`uname -s`-`uname -m` -o "${{ matrix.compose_path }}/docker-compose" sudo chmod +x "${{ matrix.compose_path }}/docker-compose" - name: Integration Test run: | echo "Testing initial install" ./install.sh ./_integration-test/run.sh echo "Testing in-place upgrade" # Also test plugin installation here echo "sentry-auth-oidc" >> sentry/requirements.txt ./install.sh --minimize-downtime ./_integration-test/run.sh - name: Inspect failure if: failure() run: | docker compose ps docker compose logs