Create a new release #243
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Create a new release | |
on: | |
workflow_dispatch: | |
inputs: | |
releaseTag: | |
description: 'Release Tag' | |
required: true | |
productionRelease: | |
type: boolean | |
description: Mark release as production ready | |
jobs: | |
release-ubuntu: | |
name: Build for Linux | |
runs-on: ubuntu-latest | |
env: | |
CARGO_TERM_COLOR: always | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: DeterminateSystems/nix-installer-action@v9 | |
- uses: DeterminateSystems/magic-nix-cache-action@v3 | |
- name: build linux-musl | |
run: nix build -L .#fastn | |
- name: run fastn | |
run: ./result/bin/fastn --version | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: linux_musl_x86_64 | |
path: result/bin/fastn | |
release-windows: | |
name: Build for Windows | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: DeterminateSystems/nix-installer-action@v9 | |
- uses: DeterminateSystems/magic-nix-cache-action@v3 | |
- name: build mingwW64 | |
run: nix build -L .#fastn-win | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: windows_x64_latest | |
path: result/bin/fastn.exe | |
- name: Install NSIS & Plugins | |
run: | | |
sudo apt update && sudo apt install -y nsis nsis-pluginapi | |
sudo chown -R $(whoami) /usr/share/nsis/Plugins/ | |
wget https://github.com/GsNSIS/EnVar/releases/download/v0.3.1/EnVar-Plugin.zip | |
unzip EnVar-Plugin.zip -d EnVar-Plugin | |
sudo mv EnVar-Plugin/Plugins/amd64-unicode/* /usr/share/nsis/Plugins/amd64-unicode/ | |
sudo mv EnVar-Plugin/Plugins/x86-ansi/* /usr/share/nsis/Plugins/x86-ansi/ | |
sudo mv EnVar-Plugin/Plugins/x86-unicode/* /usr/share/nsis/Plugins/x86-unicode/ | |
- name: Create Installer | |
run: makensis -V3 -DCURRENT_WD=${{ github.workspace }} -DVERSION=${{ github.event.inputs.releaseTag }} install.nsi | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: windows_x64_installer.exe | |
path: windows_x64_installer.exe | |
release-macos: | |
name: Build for MacOS | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
ftd/target | |
fifthtry_content/target | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Run Build | |
id: build-macos | |
continue-on-error: false | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release --features=auth | |
- name: run fastn | |
run: ./target/release/fastn --version | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: macos_x64_latest | |
path: | | |
target/release/fastn | |
create-release: | |
name: Create github tag and release | |
runs-on: ubuntu-latest | |
needs: [release-ubuntu, release-macos, release-windows] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: macos_x64_latest | |
path: ~/download/macos | |
- uses: actions/download-artifact@v4 | |
with: | |
name: linux_musl_x86_64 | |
path: ~/download/linux_musl | |
- uses: actions/download-artifact@v4 | |
with: | |
name: windows_x64_latest | |
path: ~/download/windows | |
- uses: actions/download-artifact@v4 | |
with: | |
name: windows_x64_installer.exe | |
path: ~/download/windows | |
- name: Rename assets | |
run: | | |
mv ~/download/windows/fastn.exe ~/download/windows/fastn_windows_x86_64.exe | |
mv ~/download/windows/windows_x64_installer.exe ~/download/windows/fastn_setup.exe | |
mv ~/download/macos/fastn ~/download/macos/fastn_macos_x86_64 | |
mv ~/download/linux_musl/fastn ~/download/linux_musl/fastn_linux_musl_x86_64 | |
- name: Update .github/RELEASE_TEMPLATE.md | |
run: | | |
sed -i "s/GITHUB_SHA/${GITHUB_SHA}/g" .github/RELEASE_TEMPLATE.md | |
sed -i "s/DATE/$(date)/g" .github/RELEASE_TEMPLATE.md | |
- uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "~/download/windows/fastn_windows_x86_64.exe,~/download/windows/fastn_setup.exe,~/download/macos/fastn_macos_x86_64,~/download/linux_musl/fastn_linux_musl_x86_64" | |
generateReleaseNotes: true | |
token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ github.event.inputs.releaseTag }} | |
prerelease: ${{ github.event.inputs.productionRelease && github.event.inputs.productionRelease == 'false' }} | |
bodyFile: .github/RELEASE_TEMPLATE.md |