-
Notifications
You must be signed in to change notification settings - Fork 0
122 lines (121 loc) · 5.63 KB
/
meta.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Sets Metadata for workflow(s)
name: Metadata
on:
workflow_call:
inputs:
pr-prefix:
description: 'A prefix for the pr environment name'
type: string
# Map the workflow outputs to job outputs
outputs:
event-name:
description: "name of triggering event"
value: ${{ jobs.set-metadata.outputs.event-name }}
pr-number:
description: "pr number or null if not a pull_request"
value: ${{ jobs.set-metadata.outputs.pr-number }}
pr-env:
description: "pr environment name or null if not a pull_request"
value: ${{ jobs.set-metadata.outputs.pr-env }}
release-name:
description: "release name or null if not a release"
value: ${{ jobs.set-metadata.outputs.release-name }}
release-id:
description: "release ID or null if not a release"
value: ${{ jobs.set-metadata.outputs.release-id }}
release-is-prerelease:
description: "true if release is a prerelease, false if release is fully released, null if not a release"
value: ${{ jobs.set-metadata.outputs.release-is-prerelease }}
release-url:
description: "release URL or null if not a release"
value: ${{ jobs.set-metadata.outputs.release-url }}
revision-sha:
description: "full sha"
value: ${{ jobs.set-metadata.outputs.revision-sha }}
build-tag:
description: "build tag (sha-###)"
value: ${{ jobs.set-metadata.outputs.build-tag }}
artifact-name:
description: "name of artifact containing the full event payload as JSON"
value: ${{ jobs.set-metadata.outputs.artifact-name }}
jobs:
set-metadata:
runs-on: ubuntu-latest
# Map the job outputs to step outputs
outputs:
event-name: ${{ steps.set-event-name.outputs.event-name }}
pr-number: ${{ steps.set-pr-number.outputs.pr-number }}
pr-env: ${{ steps.set-pr-number.outputs.pr-env }}
release-name: ${{ steps.set-release.outputs.release-name }}
release-id: ${{ steps.set-release.outputs.release-id }}
release-is-prerelease: ${{ steps.set-release.outputs.release-is-prerelease }}
release-url: ${{ steps.set-release.outputs.release-url }}
revision-sha: ${{ steps.set-revision-sha.outputs.revision-sha }}
build-tag: ${{ steps.set-build-tag.outputs.build-tag }}
artifact-name: ${{ steps.stash-event-payload.outputs.artifact-name }}
steps:
- name: set-event-name
id: set-event-name
run: echo "event-name=${{ github.event_name }}" >> $GITHUB_OUTPUT
- name: set-pr-number
id: set-pr-number
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
export PR_NUMBER=$( cat ${{ github.event_path }} | jq .number -r )
echo pr-number=${PR_NUMBER} >> $GITHUB_OUTPUT
echo pr-env=${{ inputs.pr-prefix }}${PR_NUMBER} >> $GITHUB_OUTPUT
else
echo "pr-number=null" >> $GITHUB_OUTPUT
echo "pr-env=null" >> $GITHUB_OUTPUT
fi
- name: set-release
id: set-release
run: |
if [[ "${{ github.event_name }}" == "release" ]]; then
export RELEASE_NAME=$( cat ${{ github.event_path }} | jq .release.name -r )
export RELEASE_ID=$( cat ${{ github.event_path }} | jq .release.id -r )
export RELEASE_IS_PRERELEASE=$( cat ${{ github.event_path }} | jq .release.prerelease -r )
export RELEASE_URL=$( cat ${{ github.event_path }} | jq .release.html_url -r )
echo release-name=${RELEASE_NAME} >> $GITHUB_OUTPUT
echo release-id=${RELEASE_ID} >> $GITHUB_OUTPUT
echo release-is-prerelease=${RELEASE_IS_PRERELEASE} >> $GITHUB_OUTPUT
echo release-url=${RELEASE_URL} >> $GITHUB_OUTPUT
else
echo "release-name=null" >> $GITHUB_OUTPUT
echo "release-id=null" >> $GITHUB_OUTPUT
echo "release-is-prerelease=null" >> $GITHUB_OUTPUT
echo "release-url=null" >> $GITHUB_OUTPUT
fi
- name: set-revision-sha
id: set-revision-sha
run: echo "revision-sha=${{ github.sha }}" >> $GITHUB_OUTPUT
- name: set-build-tag
id: set-build-tag
run: |
git init
echo "build-tag=$( git rev-parse --short ${{ github.sha }} )" >> $GITHUB_OUTPUT
- name: stash-event-payload
id: stash-event-payload
run: |
mkdir -p ./details
cat ${{ github.event_path }} > ./details/event-payload.json
echo "artifact-name=details/event-payload.json" >> $GITHUB_OUTPUT
- name: upload-event-payload-artifact
uses: actions/upload-artifact@v3
with:
name: event-payload.json
path: ./details/
- name: inspect-outputs
id: inspect-outputs
run: |
echo "event-name: ${{ steps.set-event-name.outputs.event-name }}"
echo "pr-number: ${{ steps.set-pr-number.outputs.pr-number }}"
echo "pr-env: ${{ steps.set-pr-number.outputs.pr-env }}"
echo "release-name: ${{ steps.set-release.outputs.release-name }}"
echo "release-id: ${{ steps.set-release.outputs.release-id }}"
echo "release-is-prerelease: ${{ steps.set-release.outputs.release-is-prerelease }}"
echo "release-url: ${{ steps.set-release.outputs.release-url }}"
echo "revision-sha: ${{ steps.set-revision-sha.outputs.revision-sha }}"
echo "build-tag: ${{ steps.set-build-tag.outputs.build-tag }}"
echo "artifact-name: ${{ steps.stash-event-payload.outputs.artifact-name }}"
cat ${{ github.event_path }}