Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions .github/workflows/cut_release_branch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# 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:
# TODO: Replace to use self-hosted runners
runs-on: ubuntu-latest
env:
MASTER_BRANCH: master
NEXT_RELEASE: ${{ github.event.inputs.NEXT_VERSION }}
steps:
- name: Validate Next Version
run: |
if [[ $NEXT_RELEASE =~ ([0-9]\.[0-9]*\.[0-9]) ]]; then
NEXT_VERSION_IN_BASE_BRANCH=${BASH_REMATCH[1]}
fi
if [[ -z "$NEXT_VERSION_IN_BASE_BRANCH" ]]; then
echo "The input for NEXT_RELEASE does not match a valid format [0-9].[0-9].[0-9]"
exit 1
fi
echo "NEXT_VERSION_IN_BASE_BRANCH=${NEXT_VERSION_IN_BASE_BRANCH}" >> $GITHUB_ENV
- name: Echo value
run: |
echo "NEXT_VERSION_IN_BASE_BRANCH: $NEXT_VERSION_IN_BASE_BRANCH"
- 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: |
sh ./set_version.sh "$NEXT_VERSION_IN_BASE_BRANCH"
echo "==============Update master branch as following================"
git diff
echo "==============================================================="
working-directory: 'release/src/main/scripts'
- name: Commit and Push to master branch files with Next Version
run: |
git add buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
git add gradle.properties
git add sdks/python/apache_beam/version.py
git add sdks/go/pkg/beam/core/core.go
git commit -m "Moving to ${NEXT_VERSION_IN_BASE_BRANCH}-SNAPSHOT on master branch."
git push --dry-run origin ${MASTER_BRANCH}

update_release_branch:
# TODO: Replace to use self-hosted runners
runs-on: ubuntu-latest
env:
RELEASE: ${{ github.event.inputs.RELEASE_VERSION }}
RELEASE_BRANCH: release-${env.RELEASE}
steps:
- name: Validate Release Version
run: |
if [[ ${RELEASE} =~ ([0-9]\.[0-9]*\.[0-9]) ]]; then
RELEASE_VERSION=${BASH_REMATCH[1]}
fi
if [[ -z "$RELEASE_VERSION" ]]; then
echo "The input for RELEASE does not match a valid format [0-9].[0-9].[0-9]"
exit 1
fi
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> $GITHUB_ENV
- name: Echo value
run: |
echo "RELEASE_VERSION: ${RELEASE_VERSION}"
- 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 --dry-run --set-upstream origin ${RELEASE_BRANCH}