89 lines
2.9 KiB
YAML
89 lines
2.9 KiB
YAML
name: Build pull request
|
|
|
|
on:
|
|
pull_request:
|
|
types:
|
|
- labeled
|
|
- opened
|
|
- synchronize
|
|
- reopened
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
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-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
|