12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- name: Build pull request
- on:
- pull_request:
- concurrency:
- group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
- cancel-in-progress: true
- jobs:
- common:
- uses: ./.github/workflows/build-common.yml
- with:
- # it's rare for only the openj9 tests or the windows smoke tests to break
- skip-openj9-tests: ${{ !contains(github.event.pull_request.labels.*.name, 'test openj9') }}
- skip-windows-smoke-tests: ${{ !contains(github.event.pull_request.labels.*.name, 'test windows') }}
- cache-read-only: true
- test-latest-deps:
- uses: ./.github/workflows/reusable-test-latest-deps.yml
- with:
- cache-read-only: true
- test-indy:
- uses: ./.github/workflows/reusable-test-indy.yml
- with:
- cache-read-only: true
- test-native:
- uses: ./.github/workflows/reusable-native-tests.yml
- with:
- skip-native-tests: ${{ !contains(github.event.pull_request.labels.*.name, 'test native') }}
- muzzle:
- uses: ./.github/workflows/reusable-muzzle.yml
- with:
- cache-read-only: true
- shell-script-check:
- uses: ./.github/workflows/reusable-shell-script-check.yml
- # this is not a required check to avoid blocking pull requests if external links break
- markdown-link-check:
- # release branches are excluded because the README.md javaagent download link has to be updated
- # on release branches before the release download has been published
- if: "!startsWith(github.ref_name, 'release/') && !startsWith(github.base_ref, 'release/')"
- uses: ./.github/workflows/reusable-markdown-link-check.yml
- markdown-lint-check:
- uses: ./.github/workflows/reusable-markdown-lint-check.yml
- misspell-check:
- uses: ./.github/workflows/reusable-misspell-check.yml
- required-status-check:
- # test-latest-deps is not included in the required status checks
- # because any time a new library version is released to maven central
- # it can fail due to test code incompatibility with the new library version,
- # or due to slight changes in emitted telemetry
- # (muzzle can also fail when a new library version is released to maven central
- # but that happens much less often)
- #
- # only the "common" checks are required for release branch PRs in order to avoid any unnecessary
- # release branch maintenance (especially for patches)
- needs:
- - common
- - muzzle
- - shell-script-check
- - markdown-lint-check
- - misspell-check
- runs-on: ubuntu-latest
- if: always()
- steps:
- - if: |
- needs.common.result != 'success' ||
- (
- !startsWith(github.base_ref, 'release/') &&
- (
- needs.muzzle.result != 'success' ||
- needs.shell-script-check.result != 'success' ||
- needs.markdown-lint-check.result != 'success' ||
- needs.misspell-check.result != 'success'
- )
- )
- run: exit 1 # fail
|