Skip to content

Commit

Permalink
Merge pull request #17 from Nyoxis/main
Browse files Browse the repository at this point in the history
ci: Added build and draft release job
  • Loading branch information
kirushik authored Mar 6, 2024
2 parents 79c124e + ec7734d commit aca301b
Show file tree
Hide file tree
Showing 2 changed files with 139 additions and 0 deletions.
108 changes: 108 additions & 0 deletions .github/workflows/rust-check-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Rust check version and build

on:
pull_request:
push:
branches:
- main

jobs:
version:
name: Check version
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:

- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.12.1
with:
access_token: ${{ github.token }}

- name: Install Rust stable toolchain
uses: actions-rs/toolchain@v1.0.7
with:
profile: minimal
toolchain: stable
override: true

- name: Checkout base
uses: actions/checkout@v4.1.1
if: github.event_name == 'pull_request'
with:
ref: ${{ github.event.pull_request.base.ref }}
fetch-depth: 50
submodules: 'recursive'

- name: Checkout before push
uses: actions/checkout@v4.1.1
if: github.event_name != 'pull_request'
with:
ref: ${{ github.event.before }}
fetch-depth: 50
submodules: 'recursive'

- name: Get package version before or base
run: >
echo "BEFORE_VERSION=$(
cargo metadata --format-version=1 --no-deps |
jq -r '.packages[] | select(.name == "kalatori") | .version'
)" >> $GITHUB_ENV
- name: Checkout sources
uses: actions/checkout@v4.1.1
with:
fetch-depth: 50
submodules: 'recursive'

- name: Get package version
run: >
echo "VERSION=$(
cargo metadata --format-version=1 --no-deps |
jq -r '.packages[] | select(.name == "kalatori") | .version'
)" >> $GITHUB_ENV
- name: Check which version is greater
run: ./is_version_greater.sh $VERSION $BEFORE_VERSION

cargo-build:
name: Cargo build
needs: version
if: github.event_name == 'push'
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:

- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.12.1
with:
access_token: ${{ github.token }}

- name: Checkout sources
uses: actions/checkout@v4.1.1
with:
fetch-depth: 50
submodules: 'recursive'

- name: Install Rust stable toolchain
uses: actions-rs/toolchain@v1.0.7
with:
profile: minimal
toolchain: stable
override: true

- name: Rust Cache
uses: Swatinem/rust-cache@v2.7.3

- name: cargo build
run: cargo build --release

- name: Get package version
run: >
echo "VERSION=$(
cargo metadata --format-version=1 --no-deps |
jq -r '.packages[] | select(.name == "kalatori") | .version'
)" >> $GITHUB_ENV
- name: Draft release binary
run: gh release create -d $VERSION ./target/release/kalatori --generate-notes
31 changes: 31 additions & 0 deletions is_version_greater.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash
IFS=.
version=($1)
before_version=($2)
# starting from minor of version if version shorter before_version
# fill absent fields in version with zeros
for ((i=${#version[@]}; i<${#before_version[@]}; i++))
do
version[i]=0
done
# starting from major of version
for ((i=0; i<${#version[@]}; i++))
do
if [[ -z ${before_version[i]} ]]
then
# if before_version shorter version then
# fill absent fields in before_version with zeros
ver2[i]=0
fi
if ((10#${version[i]} > 10#${before_version[i]}))
then
# if version greater than before_version in most major differing field
exit 0
fi
if ((10#${version[i]} < 10#${before_version[i]}))
then
# if version is not greater in most major differing field
exit 1
fi
done
exit 1

0 comments on commit aca301b

Please sign in to comment.