forked from apache/beam
-
Notifications
You must be signed in to change notification settings - Fork 0
111 lines (101 loc) · 4.17 KB
/
cut_release_branch.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
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
# This workflow will update apache beam master branch with next release version
# and cut release branch for current development version.
# To learn more about GitHub Actions in Apache Beam check the CI.md
name: Cut Release Branch
on:
workflow_dispatch:
inputs:
RELEASE_VERSION:
description: Beam version of current release
required: true
NEXT_VERSION:
description: Next release version
required: true
jobs:
update_master:
runs-on: [self-hosted, ubuntu-20.04]
env:
MASTER_BRANCH: master
NEXT_RELEASE: ${{ github.event.inputs.NEXT_VERSION }}
SCRIPT_DIR: ./release/src/main/scripts
steps:
- name: Validate Next Version
run: |
if [[ $NEXT_RELEASE =~ ([0-9]+\.[0-9]+\.[0-9]+) ]]; then
echo "NEXT_VERSION_IN_BASE_BRANCH=${BASH_REMATCH[1]}" >> $GITHUB_ENV
else
echo "The input for NEXT_RELEASE does not match a valid format [0-9]+\.[0-9]+\.[0-9]+"
exit 1
fi
- name: Check out code
uses: actions/checkout@v3
- name: Set git config
run: |
git config user.name $GITHUB_ACTOR
git config user.email actions@"$RUNNER_NAME".local
- name: Update master branch
run: |
bash "${SCRIPT_DIR}/set_version.sh" "${NEXT_VERSION_IN_BASE_BRANCH}"
echo "==============Update master branch as following================"
git diff
echo "==============================================================="
- name: Commit and Push to master branch files with Next Version
run: |
git add *
git commit -m "Moving to ${NEXT_VERSION_IN_BASE_BRANCH}-SNAPSHOT on master branch."
git push origin ${MASTER_BRANCH}
update_release_branch:
needs: update_master
runs-on: [self-hosted, ubuntu-20.04]
env:
RELEASE: ${{ github.event.inputs.RELEASE_VERSION }}
steps:
- name: Validate Release Version
run: |
if [[ ${RELEASE} =~ ([0-9]+\.[0-9]+\.[0-9]+) ]]; then
echo "RELEASE_VERSION=${BASH_REMATCH[1]}" >> $GITHUB_ENV
echo "RELEASE_BRANCH=release-${RELEASE}" >> $GITHUB_ENV
else
echo "The input for RELEASE does not match a valid format [0-9]+\.[0-9]+\.[0-9]+"
exit 1
fi
- name: Check out code
uses: actions/checkout@v3
- name: Set git config
run: |
git config user.name $GITHUB_ACTOR
git config user.email actions@"$RUNNER_NAME".local
- name: Checkout to release branch
run: |
git checkout -b ${RELEASE_BRANCH}
echo "==================Current working branch======================="
echo ${RELEASE_BRANCH}
echo "==============================================================="
- name: Update release version for dataflow runner
run: |
sed -i -e "s/'beam-master-.*'/'${RELEASE}'/g" \
runners/google-cloud-dataflow-java/build.gradle
echo "===============Update release branch as following=============="
git diff
echo "==============================================================="
- name: Commit and Push to release branch
run: |
git add runners/google-cloud-dataflow-java/build.gradle
git commit -m "Set Dataflow container to release version."
git push --set-upstream origin ${RELEASE_BRANCH}