Skip to content

Commit

Permalink
test run conditionals
Browse files Browse the repository at this point in the history
  • Loading branch information
gartnera committed Jul 2, 2024
1 parent 5efdc85 commit 58de2ef
Showing 1 changed file with 48 additions and 2 deletions.
50 changes: 48 additions & 2 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,69 @@ on:
pull_request:
branches:
- "*"
merge_group:
workflow_dispatch:
schedule:
# run at 6AM UTC Daily
# 6AM UTC -> 11PM PT
- cron: "0 6 * * *"

concurrency:
group: e2e-${{ github.head_ref || github.sha }}
cancel-in-progress: true

jobs:
matrix-conditionals:
runs-on: ubuntu-22.04
env:
GH_TOKEN: ${{ github.token }}
outputs:
UPGRADE_TESTS: ${{ steps.matrix-conditionals.outputs.UPGRADE_TESTS }}
UPGRADE_LIGHT_TESTS: ${{ steps.matrix-conditionals.outputs.UPGRADE_LIGHT_TESTS }}
ADMIN_TESTS: ${{ steps.matrix-conditionals.outputs.ADMIN_TESTS }}
steps:
# use cli rather than event context to avoid race conditions (label added after push)
- id: matrix-conditionals
run: |
if [[ ${{ github.event_name }} == 'pull_request' ]]; then
labels=$(gh pr view -R ${{github.repository}} ${{github.event.pull_request.number}} --json labels -q '.labels[].name')
if [[ "$labels" == *"UPGRADE_TESTS"* ]]; then
echo "UPGRADE_TESTS=true" >> $GITHUB_OUTPUT
fi
if [[ "$labels" == *"UPGRADE_LIGHT_TESTS"* ]]; then
echo "UPGRADE_LIGHT_TESTS=true" >> $GITHUB_OUTPUT
else
if [[ "$labels" == *"ADMIN_TESTS"* ]]; then
echo "ADMIN_TESTS=true" >> $GITHUB_OUTPUT
fi
elif [[ ${{ github.event_name }} == 'merge_group' ]]; then
#TODO: add ability to opt out via MINIMAL_TESTS
echo "UPGRADE_LIGHT_TESTS=true" >> $GITHUB_OUTPUT
elif [[ ${{ github.event_name }} == 'schedule' ]]; then
echo "UPGRADE_TESTS=true" >> $GITHUB_OUTPUT
echo "UPGRADE_LIGHT_TESTS=true" >> $GITHUB_OUTPUT
echo "ADMIN_TESTS=true" >> $GITHUB_OUTPUT
fi
e2e:
needs: matrix-conditionals
strategy:
matrix:
include:
- make-target: "start-e2e-test"
runs-on: ubuntu-20.04
run: true
- make-target: "start-upgrade-test"
runs-on: ubuntu-20.04
run: ${{ needs.matrix-conditionals.outputs.UPGRADE_TESTS == 'true' }}
- make-target: "start-upgrade-test-light"
runs-on: ubuntu-20.04
run: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'MINIMAL_CI') }}
run: ${{ needs.matrix-conditionals.outputs.UPGRADE_LIGHT_TESTS == 'true' }}
- make-target: "start-e2e-admin-test"
runs-on: ubuntu-20.04
run: ${{ needs.matrix-conditionals.outputs.ADMIN_TESTS == 'true' }}
name: ${{ matrix.make-target }}
uses: ./.github/workflows/reusable-e2e.yml
with:
Expand All @@ -33,7 +79,7 @@ jobs:
secrets: inherit
# this allows you to set a required status check
ok:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: e2e
steps:
- run: echo "e2e tests passed"

0 comments on commit 58de2ef

Please sign in to comment.