-
Notifications
You must be signed in to change notification settings - Fork 25
86 lines (80 loc) · 3.36 KB
/
version-update-cli.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
#
# Copyright 2025 The Dapr Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: update-cli-version
on:
pull:
paths:
- '.github/workflows/version-update-cli.yml'
- '.github/scripts/compare_versions.py'
workflow_dispatch:
inputs:
rel_version:
description: 'Dapr release version (examples: 1.9.0-rc.1, 1.9.1)'
required: true
type: string
jobs:
update-longhauls:
name: Update the dapr version in longhaul tests
runs-on: ubuntu-latest
permissions:
contents: write
env:
LONG_HAUL_REPO: test-infra
REL_VERSION: ${{ github.event.inputs.rel_version || '99.99.99' }}
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
- name: Checkout the dapr repo
uses: actions/checkout@v4
with:
repository: dapr/cli
path: .dapr_cli
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install pcre2-utils
pip install semver
- name: Parse release version and set REL_VERSION and LATEST_RELEASE
run: python .dapr_cli/.github/scripts/get_release_version.py ${{ github.event_name }}
- name: Compare versions and determine if update of long haul tests is required
id: compare_versions
run: |
REL_VERSION=`echo "${{ env.REL_VERSION }}" | sed -r 's/^[vV]?([0-9].+)$/\1/'`
# Thanks to https://ihateregex.io/expr/semver/
SEMVER_REGEX='^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'
if [ `echo $REL_VERSION | pcre2grep "$SEMVER_REGEX"` ]; then
echo "$REL_VERSION is a valid semantic version."
else
echo "$REL_VERSION is not a valid semantic version."
exit 1
fi
echo "REL_VERSION=${REL_VERSION,,}" >>${GITHUB_ENV}
EXISTING_VERSION=$(cat "config/dapr_runtime.version")
echo "Existing version in longhaul tests: $EXISTING_VERSION"
echo "New version: $REL_VERSION"
python .github/scripts/compare_versions.py "$REL_VERSION" "$EXISTING_VERSION"
- name: Update dapr cli version in the longhaul tests repo
if: env.VERSION_UPDATE_REQUIRED == 'true'
run: |
echo "${REL_VERSION}" > config/dapr_cli.version
- name: Show Diff
run: |
git diff
- name: Commit and push changes
if: github.event_name == 'workflow_dispatch' && env.VERSION_UPDATE_REQUIRED == 'true'
run: |
git config --global user.name "github-actions"
git config --global user.email "[email protected]"
git add config/dapr_cli.version
git commit -s -m "Updates dapr cli version to ${REL_VERSION}"
git push