Skip to content

Commit c5b3b5e

Browse files
authored
workflows/release-binaries: Add schedule to run job once per month (#73812)
This will help catch any regressions introduced in the main branch before we start release testing.
1 parent c02d07f commit c5b3b5e

File tree

2 files changed

+35
-15
lines changed

2 files changed

+35
-15
lines changed

.github/workflows/release-binaries.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ on:
1515
description: 'Tag to build'
1616
required: true
1717
type: string
18+
schedule:
19+
# * is a special character in YAML so you have to quote this string
20+
- cron: '0 8 1 * *'
1821

1922
permissions:
2023
contents: read # Default everything to read-only
@@ -26,7 +29,7 @@ jobs:
2629
if: github.repository == 'llvm/llvm-project'
2730
outputs:
2831
release-version: ${{ steps.validate-tag.outputs.release-version }}
29-
release: ${{ steps.validate-tag.outputs.release }}
32+
flags: ${{ steps.validate-tag.outputs.flags }}
3033
build-dir: ${{ steps.validate-tag.outputs.build-dir }}
3134
rc-flags: ${{ steps.validate-tag.outputs.rc-flags }}
3235
ref: ${{ steps.validate-tag.outputs.ref }}
@@ -50,6 +53,11 @@ jobs:
5053
tag="${{ github.ref_name }}"
5154
trimmed=$(echo ${{ inputs.tag }} | xargs)
5255
[[ "$trimmed" != "" ]] && tag="$trimmed"
56+
if [ "$tag" = "main" ]; then
57+
# If tag is main, then we've been triggered by a scheduled so pass so
58+
# use the head commit as the tag.
59+
tag=`git rev-parse HEAD`
60+
fi
5361
if [ -n "${{ inputs.upload }}" ]; then
5462
upload="${{ inputs.upload }}"
5563
else
@@ -71,7 +79,7 @@ jobs:
7179
- name: Checkout LLVM
7280
uses: actions/checkout@v4
7381
with:
74-
ref: ${{ inputs.tag || github.ref_name }}
82+
ref: ${{ needs.prepare.outputs.ref }}
7583

7684
- name: Install Ninja
7785
uses: llvm/actions/install-ninja@main
@@ -140,8 +148,7 @@ jobs:
140148
- name: Build and test release
141149
run: |
142150
${{ needs.prepare.outputs.build-dir }}/llvm-project/llvm/utils/release/test-release.sh \
143-
-release ${{ needs.prepare.outputs.release }} \
144-
${{ needs.prepare.outputs.rc-flags }} \
151+
${{ needs.prepare.outputs.flags }} \
145152
-triple ${{ matrix.target.triple }} \
146153
-use-ninja \
147154
-no-checkout \

.github/workflows/set-release-binary-outputs.sh

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,32 @@ if [[ "$github_user" != "tstellar" && "$github_user" != "tru" ]]; then
1616
echo "ERROR: User not allowed: $github_user"
1717
exit 1
1818
fi
19-
pattern='^llvmorg-[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc[0-9]\+\)\?$'
20-
echo "$tag" | grep -e $pattern
21-
if [ $? != 0 ]; then
22-
echo "ERROR: Tag '$tag' doesn't match pattern: $pattern"
23-
exit 1
19+
20+
if echo $tag | grep -e '^[0-9a-f]\+$'; then
21+
# This is a plain commit.
22+
# TODO: Don't hardcode this.
23+
release_version="18"
24+
build_dir="$tag"
25+
upload='false'
26+
ref="$tag"
27+
flags="-git-ref $tag -test-asserts"
28+
29+
else
30+
31+
pattern='^llvmorg-[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc[0-9]\+\)\?$'
32+
echo "$tag" | grep -e $pattern
33+
if [ $? != 0 ]; then
34+
echo "ERROR: Tag '$tag' doesn't match pattern: $pattern"
35+
exit 1
36+
fi
37+
release_version=`echo "$tag" | sed 's/llvmorg-//g'`
38+
release=`echo "$release_version" | sed 's/-.*//g'`
39+
build_dir=`echo "$release_version" | sed 's,^[^-]\+,final,' | sed 's,[^-]\+-rc\(.\+\),rc\1,'`
40+
rc_flags=`echo "$release_version" | sed 's,^[^-]\+,-final,' | sed 's,[^-]\+-rc\(.\+\),-rc \1 -test-asserts,' | sed 's,--,-,'`
41+
flags="-release $release $rc_flags"
2442
fi
25-
release_version=`echo "$tag" | sed 's/llvmorg-//g'`
26-
release=`echo "$release_version" | sed 's/-.*//g'`
27-
build_dir=`echo "$release_version" | sed 's,^[^-]\+,final,' | sed 's,[^-]\+-rc\(.\+\),rc\1,'`
28-
rc_flags=`echo "$release_version" | sed 's,^[^-]\+,-final,' | sed 's,[^-]\+-rc\(.\+\),-rc \1 -test-asserts,' | sed 's,--,-,'`
2943
echo "release-version=$release_version" >> $GITHUB_OUTPUT
30-
echo "release=$release" >> $GITHUB_OUTPUT
3144
echo "build-dir=$build_dir" >> $GITHUB_OUTPUT
32-
echo "rc-flags=$rc_flags" >> $GITHUB_OUTPUT
45+
echo "flags=$flags" >> $GITHUB_OUTPUT
3346
echo "upload=$upload" >> $GITHUB_OUTPUT
3447
echo "ref=$tag" >> $GITHUB_OUTPUT

0 commit comments

Comments
 (0)