Merge pull request #63 from MetaMask/refactor/improve-delegation-devex #303
This file contains hidden or 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: Main | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
jobs: | |
check-workflows: | |
name: Check workflows | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout and setup environment | |
uses: MetaMask/action-checkout-and-setup@v1 | |
with: | |
is-high-risk-environment: false | |
- name: Download actionlint | |
id: download-actionlint | |
run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/7fdc9630cc360ea1a469eed64ac6d78caeda1234/scripts/download-actionlint.bash) 1.6.23 | |
shell: bash | |
- name: Check workflow files | |
run: ${{ steps.download-actionlint.outputs.executable }} -color | |
shell: bash | |
analyse-code: | |
name: Code scanner | |
needs: check-workflows | |
uses: ./.github/workflows/security-code-scanner.yml | |
permissions: | |
actions: read | |
contents: read | |
security-events: write | |
secrets: | |
SECURITY_SCAN_METRICS_TOKEN: ${{ secrets.SECURITY_SCAN_METRICS_TOKEN }} | |
APPSEC_BOT_SLACK_WEBHOOK: ${{ secrets.APPSEC_BOT_SLACK_WEBHOOK }} | |
build-lint-test: | |
name: Build, lint, and test | |
uses: ./.github/workflows/build-lint-test.yml | |
end-to-end-tests: | |
name: End to end tests | |
uses: ./.github/workflows/end-to-end-tests.yml | |
all-jobs-completed: | |
name: All jobs completed | |
runs-on: ubuntu-latest | |
needs: | |
- check-workflows | |
- analyse-code | |
- build-lint-test | |
- end-to-end-tests | |
outputs: | |
PASSED: ${{ steps.set-output.outputs.PASSED }} | |
steps: | |
- name: Set PASSED output | |
id: set-output | |
run: echo "PASSED=true" >> "$GITHUB_OUTPUT" | |
all-jobs-pass: | |
name: All jobs pass | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: all-jobs-completed | |
steps: | |
- name: Check that all jobs have passed | |
run: | | |
passed="${{ needs.all-jobs-completed.outputs.PASSED }}" | |
if [[ $passed != "true" ]]; then | |
exit 1 | |
fi | |
is-release: | |
name: Determine whether this is a release merge commit | |
needs: all-jobs-pass | |
if: github.event_name == 'push' | |
runs-on: ubuntu-latest | |
outputs: | |
IS_RELEASE: ${{ steps.is-release.outputs.IS_RELEASE }} | |
steps: | |
- id: is-release | |
uses: MetaMask/action-is-release@v2 | |
with: | |
commit-starts-with: 'Release [version],Release v[version],Release/[version],Release/v[version],Release `[version]`' | |
publish-release: | |
needs: is-release | |
if: needs.is-release.outputs.IS_RELEASE == 'true' | |
name: Publish release | |
permissions: | |
contents: write | |
uses: ./.github/workflows/publish-release.yml | |
secrets: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |