| # NOTE: Integration tests are part of a separate workflow so we can re-run just |
| # this workflow on failure |
| name: Integration Tests |
| |
| on: |
| push: |
| branches: |
| - trunk |
| pull_request: |
| branches: |
| - trunk |
| schedule: |
| - cron: '0 1 * * *' |
| |
| jobs: |
| # Special job which skips duplicate jobs |
| pre_job: |
| name: Skip Duplicate Jobs Pre Job |
| runs-on: ubuntu-latest |
| # Map a step output to a job output |
| outputs: |
| should_skip: ${{ steps.skip_check.outputs.should_skip }} |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@master |
| with: |
| persist-credentials: false |
| submodules: recursive |
| |
| - id: skip_check |
| # NOTE: We store action as submodule since ASF doesn't allow directly referencing external |
| # actions |
| uses: ./.github/actions/skip-duplicate-actions # v3.4.0 |
| with: |
| github_token: ${{ github.token }} |
| |
| integration_tests: |
| name: Run Integration Tests |
| runs-on: ubuntu-latest |
| |
| needs: pre_job |
| if: ${{ needs.pre_job.outputs.should_skip == 'false' || github.ref == 'refs/heads/trunk' }} |
| |
| strategy: |
| matrix: |
| python_version: [3.8] |
| |
| steps: |
| - uses: actions/checkout@master |
| with: |
| fetch-depth: 1 |
| |
| - name: Use Python ${{ matrix.python_version }} |
| uses: actions/setup-python@v2 |
| with: |
| python-version: ${{ matrix.python_version }} |
| |
| - name: Install OS / deb dependencies |
| run: | |
| sudo DEBIAN_FRONTEND=noninteractive apt-get update |
| sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq gcc libvirt-dev |
| |
| - name: Cache Python Dependencies |
| uses: actions/cache@v2 |
| with: |
| path: ~/.cache/pip |
| key: ${{ runner.os }}-pip-${{ hashFiles('requirements-tests.txt', 'integration/storage/requirements.txt') }} |
| restore-keys: | |
| ${{ runner.os }}-pip- |
| |
| - name: Install Python Dependencies |
| run: | |
| pip install "tox==3.20.1" |
| |
| - name: Run tox target |
| run: | |
| script -e -c "tox -e integration-storage" |
| env: |
| AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} |
| AWS_ACCESS_KEY_SECRET: ${{ secrets.AWS_ACCESS_KEY_SECRET }} |