@@ -21,65 +21,41 @@ permissions:
21
21
jobs :
22
22
publish-build-scans :
23
23
name : Publish Develocity build scans
24
- if : github.repository == 'hibernate/hibernate-validator' && github.event.workflow_run.conclusion != 'cancelled'
25
24
runs-on : ubuntu-latest
26
25
steps :
27
26
# Different branches might have different versions of Develocity, and we want to make sure
28
27
# that we publish with the one that we built the scan with in the first place:
29
28
- name : Determine the Branch Reference for which the original action was triggered
30
29
id : determine_branch_ref
30
+ env :
31
+ GH_TOKEN : ${{ github.token }}
31
32
run : |
32
- if [ -n "${{ github.event.workflow_run.pull_requests[0].base.ref }}" ]; then
33
- BRANCH_REF="${{ github.event.workflow_run.pull_requests[0].base.ref }}"
33
+ if [ "${{ github.event.workflow_run.event }}" == "pull_request" ]; then
34
+ echo "::notice::Triggering workflow was executed for a pull request"
35
+
36
+ FORK_OWNER="${{ github.event.workflow_run.head_repository.owner.login }}"
37
+ BRANCH_NAME="${{ github.event.workflow_run.head_branch }}"
38
+ if [ "${{ github.event.workflow_run.head_repository.owner.login }}" != "${{ github.event.workflow_run.repository.owner.login }}" ]; then
39
+ BRANCH_NAME="$FORK_OWNER:$BRANCH_NAME"
40
+ fi
41
+ TARGET_BRANCH=$(gh pr view "$BRANCH_NAME" --repo ${{ github.event.workflow_run.repository.full_name }} --json baseRefName -q .baseRefName)
42
+
43
+ echo "::notice::PR found. Target branch is: $TARGET_BRANCH"
44
+ echo "original_branch_ref=$TARGET_BRANCH" >> "$GITHUB_OUTPUT"
34
45
else
35
- BRANCH_REF="${{ github.event.workflow_run.head_branch }}"
46
+ echo "::notice::PR not found. Defaulting to head_branch."
47
+ echo "original_branch_ref=${{ github.event.workflow_run.head_branch }}" >> "$GITHUB_OUTPUT"
36
48
fi
37
- echo "original_branch_ref=$BRANCH_REF" >> "$GITHUB_OUTPUT"
38
49
# Checkout target branch which has trusted code
39
50
- name : Check out target branch
40
51
uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
41
52
with :
42
53
persist-credentials : false
54
+ # Different branches might have different versions of Develocity, and we want to make sure
55
+ # that we publish with the one that we built the scan with in the first place:
43
56
ref : ${{ steps.determine_branch_ref.outputs.original_branch_ref }}
44
57
- name : Set up Java 21
45
58
uses : actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # 4.7.1
46
59
with :
47
60
java-version : 21
48
61
distribution : temurin
49
- # https://github.com/actions/cache/blob/main/examples.md#java---maven
50
- - name : Cache local Maven repository
51
- uses : actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # 4.2.3
52
- with :
53
- path : ~/.m2/repository
54
- # use a different key than workflows running untrusted code
55
- key : trusted-${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
56
- restore-keys : |
57
- trusted-${{ runner.os }}-maven-
58
- - name : Set up Maven
59
- run : ./mvnw -v
60
- - name : Download GitHub Actions artifacts for the Develocity build scans
61
- id : downloadBuildScan
62
- uses : actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # 4.3.0
63
- with :
64
- pattern : build-scan-data-*
65
- github-token : ${{ github.token }}
66
- repository : ${{ github.repository }}
67
- run-id : ${{ github.event.workflow_run.id }}
68
- path : /tmp/downloaded-build-scan-data/
69
- # Don't fail the build if there are no matching artifacts
70
- continue-on-error : true
71
- - name : Publish Develocity build scans for previous builds
72
- if : ${{ steps.downloadBuildScan.outcome != 'failure'}}
73
- run : |
74
- shopt -s nullglob # Don't run the loop below if there are no artifacts
75
- status=0
76
- mkdir -p ~/.m2/.develocity/
77
- for build_scan_data_directory in /tmp/downloaded-build-scan-data/*
78
- do
79
- rm -rf ~/.m2/.develocity/build-scan-data
80
- mv "$build_scan_data_directory" ~/.m2/.develocity/build-scan-data \
81
- && ./mvnw $MAVEN_ARGS develocity:build-scan-publish-previous || status=1
82
- done
83
- exit $status
84
- env :
85
- DEVELOCITY_ACCESS_KEY : ${{ secrets.DEVELOCITY_ACCESS_KEY_PR }}
0 commit comments