Merge pull request #1324 from kopackiw/issue-883

Unify release flags and correctly mark dev build releases
This commit is contained in:
Hanno Braun 2022-11-09 09:24:18 +01:00 committed by GitHub
commit fed6533f54
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 22 deletions

View File

@ -11,17 +11,39 @@ env:
# used to rename and upload the binaries
PROJ_NAME: fj-app
# This lets our app know it's an "official" release. Otherwise we would get
# a version number like "fj-app 0.8.0 (8cb928bb, unreleased)"
FJ_OFFICIAL_RELEASE: 1
defaults:
run:
shell: bash
jobs:
calculate-release-flags:
name: Calculate release flags
runs-on: ubuntu-latest
outputs:
release-detected: ${{ steps.release.outputs.release-detected }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Operator | Cache
uses: Swatinem/rust-cache@v2
with:
key: release-operator-01
- name: Operator | Deduce
id: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_LABEL: release
RUST_LOG: info
run: |
# Run release operator
cargo run -p release-operator -- detect
binaries:
name: Binaries
needs: calculate-release-flags
strategy:
matrix:
include:
@ -30,7 +52,7 @@ jobs:
- { target: aarch64-apple-darwin, os: macOS-latest }
- { target: x86_64-pc-windows-msvc, os: windows-latest }
runs-on: ${{matrix.os}}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
@ -45,6 +67,10 @@ jobs:
- name: Binaries | Compile
run: cargo build --release --target ${{ matrix.target }}
env:
# This lets our app know it's an "official" release. Otherwise we would get
# a version number like "fj-app 0.8.0 (8cb928bb, unreleased)"
RELEASE_DETECTED: ${{ needs.calculate-release-flags.outputs.release-detected }}
- name: Binaries | Prepare upload
run: |
@ -69,7 +95,10 @@ jobs:
release:
name: Release
needs: binaries
if: ${{ needs.calculate-release-flags.outputs.release-detected == 'true' }}
needs:
- calculate-release-flags
- binaries
runs-on: ubuntu-latest
steps:
- name: Checkout
@ -80,22 +109,10 @@ jobs:
with:
key: release-operator-01
- name: Operator | Deduce
id: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_LABEL: release
RUST_LOG: info
run: |
# Run release operator
cargo run -p release-operator -- detect
- name: Binaries | Download
if: ${{ steps.release.outputs.release-detected == 'true' }}
uses: actions/download-artifact@v3
- name: Binaries | Checksums
if: ${{ steps.release.outputs.release-detected == 'true' }}
run: |
# Build binary checksums
for file in "${PROJ_NAME}"-*/"${PROJ_NAME}"-*; do
@ -105,7 +122,6 @@ jobs:
done
- name: Release | GitHub
if: ${{ steps.release.outputs.release-detected == 'true' }}
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ steps.release.outputs.tag-name }}
@ -113,7 +129,6 @@ jobs:
files: ${{ env.PROJ_NAME }}-*/${{ env.PROJ_NAME }}-*
- name: Release | Crates.io
if: ${{ steps.release.outputs.release-detected == 'true' }}
env:
RUST_LOG: info
run: |

View File

@ -23,8 +23,8 @@ impl Version {
let commit = git_description();
let official_release =
std::env::var("FJ_OFFICIAL_RELEASE").as_deref() == Ok("1");
println!("cargo:rerun-if-env-changed=FJ_OFFICIAL_RELEASE");
std::env::var("RELEASE_DETECTED").as_deref() == Ok("true");
println!("cargo:rerun-if-env-changed=RELEASE_DETECTED");
let full_string = match (commit, official_release) {
(Some(commit), true) => format!("{pkg_version} ({commit})"),