CI: fix release versions calculation (#58)

This commit is contained in:
folex 2021-01-16 21:55:34 +03:00 committed by GitHub
parent dabadeb75b
commit 459615e828
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 42 additions and 16 deletions

View File

@ -28,7 +28,7 @@ jobs:
~/.cargo/git ~/.cargo/git
~/.cargo/bin ~/.cargo/bin
target target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} key: ${{ runner.os }}-cargo-v1-${{ hashFiles('**/Cargo.lock') }}
- name: Install Rust toolchain with wasm32-unknown-unknown - name: Install Rust toolchain with wasm32-unknown-unknown
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
with: with:
@ -61,24 +61,32 @@ jobs:
yarn global add semver yarn global add semver
PATH="$(yarn global bin):$PATH" PATH="$(yarn global bin):$PATH"
# JQ version regex pattern
PAT="\\\\d+.\\\\d+.\\\\d+"
STEPPER_CARGO_TOML="stepper/Cargo.toml"
CARGO_TOML="crates/air-interpreter-wasm/Cargo.toml" CARGO_TOML="crates/air-interpreter-wasm/Cargo.toml"
# get package name from Cargo.toml # get package name from Cargo.toml
RS_PKG_NAME="$(toml get "$CARGO_TOML" package.name | tr -d \")" RS_PKG_NAME="$(toml get "$CARGO_TOML" package.name | tr -d \")"
JS_PKG_NAME="@fluencelabs/aquamarine-stepper" JS_PKG_NAME="@fluencelabs/aquamarine-stepper"
# get version from Cargo.toml # get version from Cargo.toml
STEPPER_RUST_VERSION="$(toml get "$STEPPER_CARGO_TOML" package.version | tr -d \")"
LOCAL_RUST_VERSION="$(toml get "$CARGO_TOML" package.version | tr -d \")" LOCAL_RUST_VERSION="$(toml get "$CARGO_TOML" package.version | tr -d \")"
# get & increment version from NPM # get & increment version from NPM
JS_VERSION="$(yarn info --silent "$JS_PKG_NAME" version || true)" JS_VERSIONS=$(yarn info --silent "$JS_PKG_NAME" versions | tr \' \" | jq -r ".[] | select(test(\"$PAT\"))" || true)
JS_VERSION="$(semver -p $JS_VERSIONS | tail -n1)"
NEXT_JS_VERSION="$(semver --increment patch "$JS_VERSION" || true)" NEXT_JS_VERSION="$(semver --increment patch "$JS_VERSION" || true)"
# get & increment version from crates.io # get & increment version from crates.io
RS_VERSION="$((cargo show --json "$RS_PKG_NAME" | jq -r .crate.max_version) 2>/dev/null || true)" CRATE_VERSIONS=$(cargo show --json "$RS_PKG_NAME")
NEXT_RS_VERSION="$(semver --increment patch "$RS_VERSION" || true)" CRATE_VERSIONS_FILTERED=$(echo $CRATE_VERSIONS | jq -r ".versions[] | .num | select(test(\"$PAT\"))")
MAX_RS_VERSION="$(semver -p $CRATE_VERSIONS_FILTERED | tail -n1 || true)"
NEXT_RS_VERSION="$(semver --increment patch "$MAX_RS_VERSION" || true)"
# take the highest version # take the highest version
MAX_VERSION="$(semver "$NEXT_JS_VERSION" "$NEXT_RS_VERSION" "$LOCAL_RUST_VERSION" | tail -n1)" MAX_VERSION="$(semver "$NEXT_JS_VERSION" "$NEXT_RS_VERSION" "$LOCAL_RUST_VERSION" "$STEPPER_RUST_VERSION" | tail -n1)"
echo "FINAL_VERSION=$MAX_VERSION" | tee -a $GITHUB_ENV echo "FINAL_VERSION=$MAX_VERSION" | tee -a $GITHUB_ENV
echo "JS_PKG_NAME=$JS_PKG_NAME" | tee -a $GITHUB_ENV echo "JS_PKG_NAME=$JS_PKG_NAME" | tee -a $GITHUB_ENV
@ -188,7 +196,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
tag_name: ${{ env.FINAL_VERSION }} tag_name: ${{ env.FINAL_VERSION }}
release_name: Fluence Network ${{ env.FINAL_VERSION }} release_name: AIR interpreter ${{ env.FINAL_VERSION }}
body: | body: |
- [${{ env.FINAL_VERSION }} @ NPM registry](https://www.npmjs.com/package/${{ env.JS_PKG_NAME }}/v/${{ env.FINAL_VERSION }}) - [${{ env.FINAL_VERSION }} @ NPM registry](https://www.npmjs.com/package/${{ env.JS_PKG_NAME }}/v/${{ env.FINAL_VERSION }})
- [${{ env.FINAL_VERSION }} @ crates.io](https://crates.io/crates/${{ env.PKG_NAME }}/${{ env.FINAL_VERSION }}) - [${{ env.FINAL_VERSION }} @ crates.io](https://crates.io/crates/${{ env.PKG_NAME }}/${{ env.FINAL_VERSION }})

View File

@ -74,6 +74,8 @@ jobs:
# sanitize branch name so it can be used as a semver suffix (replace [^0-9a-zA-Z-] with hyphen) # sanitize branch name so it can be used as a semver suffix (replace [^0-9a-zA-Z-] with hyphen)
SANITIZED_BRANCH="$(echo -n "${{ env.BRANCH_NAME }}" | tr -C '[:alnum:]-' -)" SANITIZED_BRANCH="$(echo -n "${{ env.BRANCH_NAME }}" | tr -C '[:alnum:]-' -)"
# JQ Version regex pattern
PAT="\\\\d+.\\\\d+.\\\\d+-$SANITIZED_BRANCH.\\\\d+"
# get package name from Cargo.toml # get package name from Cargo.toml
PKG_NAME="$(toml get "$CARGO_TOML" package.name | tr -d \")" PKG_NAME="$(toml get "$CARGO_TOML" package.name | tr -d \")"
@ -83,7 +85,7 @@ jobs:
# take all versions from npm and replace single quotes with double quotes # take all versions from npm and replace single quotes with double quotes
NPM_VERSIONS=$(yarn info --silent "$JS_PKG_NAME" versions 2>/dev/null | tr \' \") NPM_VERSIONS=$(yarn info --silent "$JS_PKG_NAME" versions 2>/dev/null | tr \' \")
# take only versions that contain branch name # take only versions that contain branch name
NPM_VERSIONS_FILTERED=$(echo $NPM_VERSIONS | jq -r ".[] | select(contains(\"$SANITIZED_BRANCH\"))") NPM_VERSIONS_FILTERED=$(echo $NPM_VERSIONS | jq -r ".[] | select(test(\"$PAT\"))")
# flatten into a single line # flatten into a single line
NPM_VERSIONS_FLATTENED=$(echo $NPM_VERSIONS_FILTERED | awk '{print}' ORS=' ') NPM_VERSIONS_FLATTENED=$(echo $NPM_VERSIONS_FILTERED | awk '{print}' ORS=' ')
# sort versions according to semver, take highest (last) # sort versions according to semver, take highest (last)
@ -93,7 +95,7 @@ jobs:
### CRATES.IO ### CRATES.IO
CRATE_VERSIONS=$(cargo show --json "$PKG_NAME") CRATE_VERSIONS=$(cargo show --json "$PKG_NAME")
CRATE_VERSIONS_FILTERED=$(echo $CRATE_VERSIONS | jq -r ".versions[] | .num | select(contains(\"$SANITIZED_BRANCH\"))") CRATE_VERSIONS_FILTERED=$(echo $CRATE_VERSIONS | jq -r ".versions[] | .num | select(test(\"$PAT\"))")
CRATE_VERSIONS_FLATTENED=$(echo $CRATE_VERSIONS_FILTERED | awk '{print}' ORS=' ') CRATE_VERSIONS_FLATTENED=$(echo $CRATE_VERSIONS_FILTERED | awk '{print}' ORS=' ')
LAST_CRATE_VERSION="$(semver -p $(echo $CRATE_VERSIONS_FLATTENED) | tail -n1 || true)" LAST_CRATE_VERSION="$(semver -p $(echo $CRATE_VERSIONS_FLATTENED) | tail -n1 || true)"
PRERELEASE_CRATE_VERSION="$(semver --increment prerelease --preid "$SANITIZED_BRANCH" "${LAST_CRATE_VERSION}" || true)" PRERELEASE_CRATE_VERSION="$(semver --increment prerelease --preid "$SANITIZED_BRANCH" "${LAST_CRATE_VERSION}" || true)"

28
Cargo.lock generated
View File

@ -56,7 +56,7 @@ dependencies = [
[[package]] [[package]]
name = "aquamarine" name = "aquamarine"
version = "0.2.3" version = "0.3.0"
dependencies = [ dependencies = [
"fluence", "fluence",
"log", "log",
@ -632,12 +632,13 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
[[package]] [[package]]
name = "fce" name = "fce"
version = "0.1.29" version = "0.1.30"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "024ac74e329d2446f8a6cde60ca26f6a159cf0d660568a156e3de499bf3011e8" checksum = "9deb5e4f0e1533694ffbfd3644b8047ae41e8098165cdf5934a60b71f82e30c9"
dependencies = [ dependencies = [
"boolinator", "boolinator",
"fce-utils", "fce-utils",
"fce-wit-generator",
"fce-wit-interfaces", "fce-wit-interfaces",
"fce-wit-parser", "fce-wit-parser",
"log", "log",
@ -659,6 +660,21 @@ version = "0.1.29"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7a516882dccba04f0034e288c1aa5f06ce9da2711a7ce984ceebac8117e185e" checksum = "b7a516882dccba04f0034e288c1aa5f06ce9da2711a7ce984ceebac8117e185e"
[[package]]
name = "fce-wit-generator"
version = "0.1.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e19c183d232092a59aeaa4f22212699b3da2acf0bcc5329a9de2a7bb7aa9f87"
dependencies = [
"fce-wit-parser",
"fluence-sdk-wit",
"once_cell",
"serde",
"serde_json",
"walrus",
"wasmer-interface-types-fl",
]
[[package]] [[package]]
name = "fce-wit-interfaces" name = "fce-wit-interfaces"
version = "0.1.29" version = "0.1.29"
@ -717,9 +733,9 @@ dependencies = [
[[package]] [[package]]
name = "fluence-faas" name = "fluence-faas"
version = "0.1.29" version = "0.1.30"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f0ec0c180f1c40573283320e422790e62120873c22d8b7b3aa50ea95f011bb8" checksum = "a74511b8a8fc16e3cb3749631824b90f89cecb742cbbaf4e467a0873e34a5a53"
dependencies = [ dependencies = [
"cmd_lib", "cmd_lib",
"fce", "fce",
@ -1651,7 +1667,7 @@ dependencies = [
[[package]] [[package]]
name = "stepper-lib" name = "stepper-lib"
version = "0.2.3" version = "0.3.0"
dependencies = [ dependencies = [
"air-parser", "air-parser",
"aqua-test-utils", "aqua-test-utils",

View File

@ -97,7 +97,7 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.118" version = "1.0.119"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9bdd36f49e35b61d49efd8aa7fc068fd295961fd2286d0b2ee9a4c7a14e99cc3" checksum = "9bdd36f49e35b61d49efd8aa7fc068fd295961fd2286d0b2ee9a4c7a14e99cc3"
dependencies = [ dependencies = [
@ -106,7 +106,7 @@ dependencies = [
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.118" version = "1.0.119"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "552954ce79a059ddd5fd68c271592374bd15cab2274970380c000118aeffe1cd" checksum = "552954ce79a059ddd5fd68c271592374bd15cab2274970380c000118aeffe1cd"
dependencies = [ dependencies = [