feat: observation of inbound SOL token deposit #269
Workflow file for this run
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
name: e2e | |
on: | |
push: | |
branches: | |
- develop | |
- release/* | |
pull_request: | |
branches: | |
- "*" | |
merge_group: | |
schedule: | |
# run at 6AM UTC Daily | |
# 6AM UTC -> 11PM PT | |
- cron: "0 6 * * *" | |
workflow_dispatch: | |
inputs: | |
default-test: | |
type: boolean | |
required: false | |
default: false | |
upgrade-light-test: | |
type: boolean | |
required: false | |
default: false | |
upgrade-test: | |
type: boolean | |
required: false | |
default: false | |
admin-test: | |
type: boolean | |
required: false | |
default: false | |
upgrade-import-mainnet-test: | |
type: boolean | |
required: false | |
default: false | |
performance-test: | |
type: boolean | |
required: false | |
default: false | |
stateful-data-test: | |
type: boolean | |
required: false | |
default: false | |
tss-migration-test: | |
type: boolean | |
required: false | |
default: false | |
solana-test: | |
type: boolean | |
required: false | |
default: false | |
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: | |
DEFAULT_TESTS: ${{ steps.matrix-conditionals.outputs.DEFAULT_TESTS }} | |
UPGRADE_TESTS: ${{ steps.matrix-conditionals.outputs.UPGRADE_TESTS }} | |
UPGRADE_LIGHT_TESTS: ${{ steps.matrix-conditionals.outputs.UPGRADE_LIGHT_TESTS }} | |
UPGRADE_IMPORT_MAINNET_TESTS: ${{ steps.matrix-conditionals.outputs.UPGRADE_IMPORT_MAINNET_TESTS }} | |
ADMIN_TESTS: ${{ steps.matrix-conditionals.outputs.ADMIN_TESTS }} | |
PERFORMANCE_TESTS: ${{ steps.matrix-conditionals.outputs.PERFORMANCE_TESTS }} | |
STATEFUL_DATA_TESTS: ${{ steps.matrix-conditionals.outputs.STATEFUL_DATA_TESTS }} | |
TSS_MIGRATION_TESTS: ${{ steps.matrix-conditionals.outputs.TSS_MIGRATION_TESTS }} | |
SOLANA_TESTS: ${{ steps.matrix-conditionals.outputs.SOLANA_TESTS }} | |
steps: | |
# use api rather than event context to avoid race conditions (label added after push) | |
- id: matrix-conditionals | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
if (context.eventName === 'pull_request') { | |
const { data: pr } = await github.rest.pulls.get({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: context.payload.pull_request.number, | |
}); | |
const labels = pr.labels.map(label => label.name); | |
console.log("labels:", labels); | |
core.setOutput('DEFAULT_TESTS', true); | |
core.setOutput('UPGRADE_TESTS', labels.includes('UPGRADE_TESTS')); | |
core.setOutput('UPGRADE_LIGHT_TESTS', labels.includes('UPGRADE_LIGHT_TESTS')); | |
core.setOutput('UPGRADE_IMPORT_MAINNET_TESTS', labels.includes('UPGRADE_IMPORT_MAINNET_TESTS')); | |
core.setOutput('ADMIN_TESTS', labels.includes('ADMIN_TESTS')); | |
core.setOutput('PERFORMANCE_TESTS', labels.includes('PERFORMANCE_TESTS')); | |
core.setOutput('STATEFUL_DATA_TESTS', labels.includes('STATEFUL_DATA_TESTS')); | |
core.setOutput('TSS_MIGRATION_TESTS', labels.includes('TSS_MIGRATION_TESTS')); | |
core.setOutput('SOLANA_TESTS', labels.includes('SOLANA_TESTS')); | |
} else if (context.eventName === 'merge_group') { | |
core.setOutput('DEFAULT_TESTS', true); | |
} else if (context.eventName === 'push' && context.ref === 'refs/heads/develop') { | |
core.setOutput('DEFAULT_TESTS', true); | |
} else if (context.eventName === 'push' && context.ref.startsWith('refs/heads/release/')) { | |
core.setOutput('DEFAULT_TESTS', true); | |
core.setOutput('UPGRADE_TESTS', true); | |
core.setOutput('UPGRADE_LIGHT_TESTS', true); | |
core.setOutput('UPGRADE_IMPORT_MAINNET_TESTS', true); | |
core.setOutput('ADMIN_TESTS', true); | |
core.setOutput('PERFORMANCE_TESTS', true); | |
core.setOutput('STATEFUL_DATA_TESTS', true); | |
} else if (context.eventName === 'schedule') { | |
core.setOutput('DEFAULT_TESTS', true); | |
core.setOutput('UPGRADE_TESTS', true); | |
core.setOutput('UPGRADE_LIGHT_TESTS', true); | |
core.setOutput('UPGRADE_IMPORT_MAINNET_TESTS', true); | |
core.setOutput('ADMIN_TESTS', true); | |
core.setOutput('PERFORMANCE_TESTS', true); | |
core.setOutput('STATEFUL_DATA_TESTS', true); | |
core.setOutput('SOLANA_TESTS', true); | |
} else if (context.eventName === 'workflow_dispatch') { | |
core.setOutput('DEFAULT_TESTS', context.payload.inputs['default-test']); | |
core.setOutput('UPGRADE_TESTS', context.payload.inputs['upgrade-test']); | |
core.setOutput('UPGRADE_LIGHT_TESTS', context.payload.inputs['upgrade-light-test']); | |
core.setOutput('UPGRADE_IMPORT_MAINNET_TESTS', context.payload.inputs['upgrade-import-mainnet-test']); | |
core.setOutput('ADMIN_TESTS', context.payload.inputs['admin-test']); | |
core.setOutput('PERFORMANCE_TESTS', context.payload.inputs['performance-test']); | |
core.setOutput('STATEFUL_DATA_TESTS', context.payload.inputs['stateful-data-test']); | |
core.setOutput('TSS_MIGRATION_TESTS', context.payload.inputs['tss-migration-test']); | |
core.setOutput('SOLANA_TESTS', context.payload.inputs['solana-test']); | |
} | |
e2e: | |
needs: matrix-conditionals | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- make-target: "start-e2e-test" | |
runs-on: ubuntu-20.04 | |
run: ${{ needs.matrix-conditionals.outputs.DEFAULT_TESTS == '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: ${{ needs.matrix-conditionals.outputs.UPGRADE_LIGHT_TESTS == 'true' }} | |
- make-target: "start-upgrade-import-mainnet-test" | |
runs-on: buildjet-16vcpu-ubuntu-2204 | |
run: ${{ needs.matrix-conditionals.outputs.UPGRADE_IMPORT_MAINNET_TESTS == 'true' }} | |
- make-target: "start-e2e-admin-test" | |
runs-on: ubuntu-20.04 | |
run: ${{ needs.matrix-conditionals.outputs.ADMIN_TESTS == 'true' }} | |
- make-target: "start-e2e-performance-test" | |
runs-on: buildjet-4vcpu-ubuntu-2204 | |
run: ${{ needs.matrix-conditionals.outputs.PERFORMANCE_TESTS == 'true' }} | |
- make-target: "start-e2e-import-mainnet-test" | |
runs-on: buildjet-16vcpu-ubuntu-2204 | |
run: ${{ needs.matrix-conditionals.outputs.STATEFUL_DATA_TESTS == 'true' }} | |
- make-target: "start-tss-migration-test" | |
runs-on: ubuntu-20.04 | |
run: ${{ needs.matrix-conditionals.outputs.TSS_MIGRATION_TESTS == 'true' }} | |
- make-target: "start-solana-test" | |
runs-on: ubuntu-20.04 | |
run: ${{ needs.matrix-conditionals.outputs.SOLANA_TESTS == 'true' }} | |
name: ${{ matrix.make-target }} | |
uses: ./.github/workflows/reusable-e2e.yml | |
with: | |
make-target: ${{ matrix.make-target }} | |
runs-on: ${{ matrix.runs-on}} | |
run: ${{ matrix.run }} | |
secrets: inherit | |
# this allows you to set a required status check | |
e2e-ok: | |
runs-on: ubuntu-22.04 | |
needs: | |
- matrix-conditionals | |
- e2e | |
if: always() | |
steps: | |
- run: | | |
result="${{ needs.e2e.result }}" | |
if [[ $result == "success" || $result == "skipped" ]]; then | |
exit 0 | |
else | |
exit 1 | |
fi |