Integration Tests #54
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
# 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 * * *' | |
permissions: | |
actions: write # Needed for skip-duplicate-jobs job | |
contents: read | |
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 # v4.0.0 | |
with: | |
cancel_others: 'true' | |
github_token: ${{ github.token }} | |
integration_tests: | |
name: Run Integration Tests | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
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@v4 | |
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@v3 | |
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==4.4.2" | |
- 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 }} |