Skip to content

append timeout is set to maximum backoff #32

append timeout is set to maximum backoff

append timeout is set to maximum backoff #32

Workflow file for this run

name: Release
permissions:
contents: write
on:
push:
tags:
# Regex for a version number such as 0.1.0
- "[0-9]+.[0-9]+.[0-9]+"
# Regex for a prerelease such as 0.1.1rc1
- '[0-9]+.[0-9]+.[0-9]+rc[0-9]+'
env:
CARGO_TERM_COLOR: always
jobs:
build-and-upload:
name: Build and upload
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- build: linux
os: ubuntu-latest
target: x86_64-unknown-linux-gnu
# - build: linux
# os: ubuntu-latest
# target: aarch64-unknown-linux-gnu
# - build: macos
# os: macos-latest
# target: aarch64-apple-darwin
# - build: windows-gnu
# os: windows-latest
# target: x86_64-pc-windows-gnu
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Get the release version from the tag
shell: bash
run: |
set +e
echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
if echo "${GITHUB_REF#refs/tags/}" | grep -q "rc"; then
echo "PRERELEASE=true" >> $GITHUB_ENV
else
echo "PRERELEASE=false" >> $GITHUB_ENV
fi
- name: Check release version
shell: bash
run: |
set +e
if ${{ env.PRERELEASE }}; then
exit 0
fi
grep -q ${{ env.VERSION }} .github/ISSUE_TEMPLATE/BUG_REPORT.yaml
if [ $? -ne 0 ]; then
echo "BUG_REPORT.yaml should contain a new release version in goral_version dropdown"
exit 1
fi
grep -q ${{ env.VERSION }} Cargo.toml
if [ $? -ne 0 ]; then
echo "Cargo.toml should contain a new release version"
exit 1
fi
grep -q ${{ env.VERSION }} CHANGELOG.md
if [ $? -ne 0 ]; then
echo "CHANGELOG.md should contain a new release version"
exit 1
fi
grep -q ${{ env.VERSION }} README.md
if [ $? -ne 0 ]; then
echo "README.md should contain a new release version in Installation section"
exit 1
fi
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Check fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Run clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
- name: Install audit
uses: actions-rs/cargo@v1
with:
command: install
args: cargo-deny
- name: Security audit, licenses
uses: actions-rs/cargo@v1
with:
command: deny
args: check licenses advisories sources
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: -- --nocapture
- name: Build
uses: actions-rs/cargo@v1
env:
RUSTFLAGS: '-C target-feature=+crt-static'
with:
command: build
args: --verbose --release --target ${{ matrix.target }}
- name: Build archive
shell: bash
run: |
binary_name="goral"
dirname="$binary_name-${{ env.VERSION }}-${{ matrix.target }}"
mkdir "$dirname"
if [ "${{ matrix.os }}" = "windows-latest" ]; then
mv "target/${{ matrix.target }}/release/$binary_name.exe" "$dirname"
else
mv "target/${{ matrix.target }}/release/$binary_name" "$dirname"
fi
if [ "${{ matrix.os }}" = "windows-latest" ]; then
7z a "$dirname.zip" "$dirname"
echo "ASSET=$dirname.zip" >> $GITHUB_ENV
else
tar -czf "$dirname.tar.gz" "$dirname"
echo "ASSET=$dirname.tar.gz" >> $GITHUB_ENV
fi
- name: Generate Changelog
run: |
if ${{ env.PRERELEASE }}; then
echo "This is a prerelease for testing purposes. For real usage please use the latest stable release." > ${{ env.VERSION }}-CHANGELOG.txt
else
echo $(grep -A10000 ${{ env.VERSION }} CHANGELOG.md | grep -B10000 -m2 -P "[0-9]+\.[0-9]+\.[0-9]+" CHANGELOG.md | grep "\S" | grep -v -E "[0-9]+\.[0-9]+\.[0-9]+") > ${{ env.VERSION }}-CHANGELOG.txt
fi
- name: Release
uses: softprops/action-gh-release@v1
with:
body_path: ${{ env.VERSION }}-CHANGELOG.txt
prerelease: ${{ env.PRERELEASE }}
files: |
${{ env.ASSET }}