aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml76
-rw-r--r--CHANGELOG.md3
2 files changed, 69 insertions, 10 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index d69740ba..923c30f1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -363,13 +363,16 @@ jobs:
linkchecker $td/book/en/
linkchecker $td/book/ru/
- # Only runs when pushing to master branch
- deploy:
- name: deploy
+ # Update stable branch
+ #
+ # This needs to run before book is built
+ mergetostablebranch:
+ name: If CI passes, merge master branch into release/vX
runs-on: ubuntu-20.04
needs:
- style
- check
+ - clippy
- checkexamples
- testexamples
- checkmacros
@@ -377,6 +380,39 @@ jobs:
- tests
- docs
- 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
if: github.ref == 'refs/heads/master'
steps:
@@ -399,6 +435,16 @@ jobs:
with:
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
run: rm -f .cargo/config
@@ -411,12 +457,12 @@ jobs:
langs=( en ru )
devver=( dev )
# 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"
# followed by MAJOR.MINOR.PATCH, see semver.org
- # Retain MAJOR.MINOR as $stable
- stable=${vers%.*}
+ # Store first in array as stable
+ stable=${vers}
echo "Stable version: $stable"
@@ -433,8 +479,18 @@ jobs:
sed "s|URL|$stable|g" redirect.html > $td/index.html
# Create the redirects for dev-version
- sed 's|URL|rtic/index.html|g' redirect.html > $td/$devver/api/index.html
- sed 's|URL|book/en|g' redirect.html > $td/$devver/index.html
+ # If the current stable and the version being built differ,
+ # then there is a dev-version and the links should point to it.
+ if [[ "$stable" != "{{ env.versionmajor }}" ]];
+ then
+ sed 's|URL|rtic/index.html|g' redirect.html > $td/$devver/api/index.html
+ sed 's|URL|book/en|g' redirect.html > $td/$devver/index.html
+ else
+ # If the current stable and the "dev" version in master branch
+ # share the same major version, redirect dev/ to stable book
+ sed 's|URL|rtic.rs/$stable/api/rtic|g' redirect.html > $td/$devver/api/index.html
+ sed 's|URL|rtic.rs/$stable|g' redirect.html > $td/$devver/index.html
+ fi
# Build books
for lang in ${langs[@]}; do
@@ -448,11 +504,11 @@ jobs:
# Build older versions, including stable
root=$(pwd)
for ver in ${vers[@]}; do
- prefix=${ver%.*}
+ prefix=${ver}
mkdir -p $td/$prefix/book
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
rm -f .cargo/config
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e16bb75c..0d30960b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### Added
+- If current $stable and master version matches, dev-book redirects to $stable book
+- During deploy stage, merge master branch into current stable IFF cargo package version matches
+- Rework branch structure, release/vVERSION
- Cargo clippy in CI
- Use rust-cache Github Action
- CI changelog entry enforcer