blob: e99c4515c8ad5222608b8a2ab48d545b39c2bc5c (
plain)
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
|
name: tarball-test
on:
push:
paths-ignore:
- 'doc/**'
- '**/man/*'
- '**.md'
- '**.rdoc'
- '**/.document'
- '.*.yml'
pull_request:
# Do not use paths-ignore for required status checks
# https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks#handling-skipped-but-required-checks
merge_group:
workflow_dispatch:
inputs:
notify-release-channel:
description: 'Also send failure notifications to SNAPSHOT_SLACK_WEBHOOK_URL (set by tarball-test-schedule).'
type: boolean
default: false
concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
permissions:
contents: read
jobs:
tarball:
runs-on: ubuntu-latest
# Cherry-pick to maintenance branches by changing only env.BRANCH below;
# archname / branch-label / Materialize all derive from it.
env:
BRANCH: master
outputs:
branch: ${{ env.BRANCH }}
skip: ${{ steps.skipping.outputs.skip }}
steps:
- id: skipping
run:
echo 'skip=true' >> $GITHUB_OUTPUT
if: >-
${{(false
|| contains(github.event.head_commit.message, '[DOC]')
|| contains(github.event.pull_request.title, '[DOC]')
|| contains(github.event.pull_request.labels.*.name, 'Documentation')
|| (github.event.pull_request.user.login == 'dependabot[bot]')
)}}
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 1 # actions/checkout fetches all heads/tags unless > 0
# tool/make-snapshot derives the branch name from HEAD and looks up
# the upstream during ChangeLog generation. Detached checkouts
# (pull_request, merge_group) lack a local branch with tracking, so
# pin one to HEAD and connect it to the matching origin ref.
- name: Materialize local branch
run: |
git fetch --no-tags --depth=1 origin "+refs/heads/$BASE:refs/remotes/origin/$BASE"
git checkout -B "$BRANCH" HEAD
git branch --set-upstream-to="origin/$BASE" "$BRANCH"
env:
BASE: ${{ github.base_ref || env.BRANCH }}
- uses: ./.github/actions/make-snapshot
with:
archname: snapshot-${{ env.BRANCH }}
srcdir: '.'
ubuntu:
needs: tarball
if: ${{ ! needs.tarball.outputs.skip }}
uses: ./.github/workflows/tarball-ubuntu.yml
with:
archname: snapshot-${{ needs.tarball.outputs.branch }}
notify-release-channel: ${{ github.event_name == 'workflow_dispatch' && inputs.notify-release-channel || false }}
secrets: inherit
macos:
needs: tarball
if: ${{ ! needs.tarball.outputs.skip }}
uses: ./.github/workflows/tarball-macos.yml
with:
archname: snapshot-${{ needs.tarball.outputs.branch }}
notify-release-channel: ${{ github.event_name == 'workflow_dispatch' && inputs.notify-release-channel || false }}
secrets: inherit
windows:
needs: tarball
if: ${{ ! needs.tarball.outputs.skip }}
uses: ./.github/workflows/tarball-windows.yml
with:
archname: snapshot-${{ needs.tarball.outputs.branch }}
notify-release-channel: ${{ github.event_name == 'workflow_dispatch' && inputs.notify-release-channel || false }}
secrets: inherit
non_development:
needs: tarball
uses: ./.github/workflows/tarball-non-development.yml
secrets: inherit
|