Skip to content

Updated Cargo.toml, README.md #5

Updated Cargo.toml, README.md

Updated Cargo.toml, README.md #5

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write # Add this to ensure proper permissions
jobs:
create-release:
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- uses: actions/checkout@v3
- name: Create Release
id: create_release
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release create ${{ github.ref_name }} \
--draft=false \
--prerelease=false \
--title="Release ${{ github.ref_name }}" \
--generate-notes
echo "upload_url=$(gh release view ${{ github.ref_name }} --json uploadUrl -q .uploadUrl)" >> $GITHUB_OUTPUT
build-and-release:
needs: create-release
name: Build and Release ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
artifact_name: spren
asset_name: spren-linux-amd64.tar.gz
target: x86_64-unknown-linux-gnu
- os: windows-latest
artifact_name: spren.exe
asset_name: spren-windows-amd64.zip
target: x86_64-pc-windows-msvc
- os: macos-latest
artifact_name: spren
asset_name: spren-macos-amd64.tar.gz
target: x86_64-apple-darwin
steps:
- uses: actions/checkout@v3
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install dependencies (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libssl-dev
- name: Build
run: cargo build --release --target ${{ matrix.target }}
- name: Prepare release archive (Unix)
if: matrix.os != 'windows-latest'
run: |
mkdir release
cp target/${{ matrix.target }}/release/${{ matrix.artifact_name }} release/
cp README.md LICENSE release/
cd release
tar czf ../${{ matrix.asset_name }} .
cd ..
- name: Prepare release archive (Windows)
if: matrix.os == 'windows-latest'
run: |
mkdir release
cp target/${{ matrix.target }}/release/${{ matrix.artifact_name }} release/
cp README.md LICENSE release/
Compress-Archive -Path release/* -DestinationPath ${{ matrix.asset_name }}
- name: Upload Release Asset
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload ${{ github.ref_name }} ${{ matrix.asset_name }}