Create a new release #241
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: Download EnVar plugin for NSIS | |
uses: carlosperate/download-file-action@v1.0.3 | |
with: | |
file-url: https://github.com/GsNSIS/EnVar/releases/download/v0.3.1/EnVar-Plugin.zip | |
file-name: envar_plugin.zip | |
location: ${{ github.workspace }} | |
- name: Extract EnVar plugin | |
run: 7z x -o"${{ github.workspace }}/NSIS_Plugins" "${{ github.workspace }}/envar_plugin.zip" | |
- name: Create installer | |
uses: joncloud/makensis-action@v4 | |
with: | |
arguments: /V3 /DCURRENT_WD=${{ github.workspace }} /DVERSION=${{ github.event.inputs.releaseTag }} | |
additional-plugin-paths: ${{ github.workspace }}/NSIS_Plugins/Plugins | |
- 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 |