GHA: Automatic merge to release/vX

This commit is contained in:
Henrik Tjäder 2022-02-09 21:03:57 +01:00
parent 78bdab6bf1
commit 4a7951121d

View file

@ -363,9 +363,11 @@ jobs:
linkchecker $td/book/en/ linkchecker $td/book/en/
linkchecker $td/book/ru/ linkchecker $td/book/ru/
# Only runs when pushing to master branch # Update stable branch
deploy: #
name: deploy # This needs to run before book is built
mergetostablebranch:
name: If CI passes, merge master branch into release/vX
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
needs: needs:
- style - style
@ -378,6 +380,39 @@ jobs:
- tests - tests
- docs - docs
- mdbook - mdbook
# Only run this when pushing to master branch
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v2
- name: Get crate version and print output branch release/vX
id: crateversionbranch
# Parse metadata for version number, extract the Semver Major
run: |
VERSION=$(cargo metadata --format-version 1 --no-deps --offline | jq -r '.packages[] | select(.name =="cortex-m-rtic") | .version')
VERSIONMAJOR=${VERSION%.*.*}
echo "branch=release/v$VERSIONMAJOR" >> $GITHUB_ENV
echo "versionmajor=$VERSIONMAJOR" >> $GITHUB_ENV
echo "version=$VERSION" >> $GITHUB_ENV
- uses: everlytic/branch-merge@1.1.2
with:
github_token: ${{ github.token }}
source_ref: 'master'
target_branch: ${{ env.branch }}
commit_message_template: '[Bors] Merged {source_ref} into target {target_branch}'
# Only runs when pushing to master branch
# Bors run CI against staging branch,
# if that succeeds Borst tries against master branch
# If all tests pass, then deploy stage is run
deploy:
name: deploy
runs-on: ubuntu-20.04
needs:
mergetostablebranch
# Only run this when pushing to master branch # Only run this when pushing to master branch
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/master'
steps: steps:
@ -400,6 +435,16 @@ jobs:
with: with:
mdbook-version: 'latest' mdbook-version: 'latest'
- name: Get crate version
id: crateversion
# Parse metadata for version number, extract the Semver Major
run: |
VERSION=$(cargo metadata --format-version 1 --no-deps --offline | jq -r '.packages[] | select(.name =="cortex-m-rtic") | .version')
VERSIONMAJOR=${VERSION%.*.*}
echo "branch=release/v$VERSIONMAJOR" >> $GITHUB_ENV
echo "versionmajor=$VERSIONMAJOR" >> $GITHUB_ENV
echo "version=$VERSION" >> $GITHUB_ENV
- name: Remove cargo-config - name: Remove cargo-config
run: rm -f .cargo/config run: rm -f .cargo/config
@ -412,12 +457,12 @@ jobs:
langs=( en ru ) langs=( en ru )
devver=( dev ) devver=( dev )
# The latest stable must be the first element in the array # The latest stable must be the first element in the array
vers=( 1.0.x 0.5.x 0.4.x ) vers=( "1" "0.5" "0.4" )
# All releases start with "v" # All releases start with "v"
# followed by MAJOR.MINOR.PATCH, see semver.org # followed by MAJOR.MINOR.PATCH, see semver.org
# Retain MAJOR.MINOR as $stable # Store first in array as stable
stable=${vers%.*} stable=${vers}
echo "Stable version: $stable" echo "Stable version: $stable"
@ -449,11 +494,11 @@ jobs:
# Build older versions, including stable # Build older versions, including stable
root=$(pwd) root=$(pwd)
for ver in ${vers[@]}; do for ver in ${vers[@]}; do
prefix=${ver%.*} prefix=${ver}
mkdir -p $td/$prefix/book mkdir -p $td/$prefix/book
src=$(mktemp -d) src=$(mktemp -d)
curl -L https://github.com/rtic-rs/cortex-m-rtic/archive/v${ver}.tar.gz | tar xz --strip-components 1 -C $src curl -L https://github.com/rtic-rs/cortex-m-rtic/archive/release/v${ver}.tar.gz | tar xz --strip-components 1 -C $src
pushd $src pushd $src
rm -f .cargo/config rm -f .cargo/config