Skip to content

Create Release

Create Release #5

Workflow file for this run

name: Create Release
on:
workflow_dispatch:
inputs:
version:
description: 'Version number (e.g., v1.0.0)'
required: true
type: string
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
pages: write
steps:
- uses: actions/checkout@v4
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v2
with:
version: 0.13.0
- name: Create release directory
run: mkdir -p releases
- name: Build release binaries
run: |
# Linux x86_64
zig build -Dtarget=x86_64-linux -Doptimize=ReleaseSafe
cp zig-out/bin/htt releases/htt-linux-x86_64
# Linux ARM64
zig build -Dtarget=aarch64-linux -Doptimize=ReleaseSafe
cp zig-out/bin/htt releases/htt-linux-arm64
# Windows x86_64
zig build -Dtarget=x86_64-windows -Doptimize=ReleaseSafe
cp zig-out/bin/htt.exe releases/htt-windows-x86_64.exe
# Windows ARM64
zig build -Dtarget=aarch64-windows -Doptimize=ReleaseSafe
cp zig-out/bin/htt.exe releases/htt-windows-arm64.exe
# macOS ARM64
zig build -Dtarget=aarch64-macos -Doptimize=ReleaseSafe
cp zig-out/bin/htt releases/htt-macos-arm64
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: releases/*
name: Release ${{ inputs.version }}
tag_name: ${{ inputs.version }}
body: |
Release ${{ inputs.version }}
Available binaries:
- Linux (x86_64, ARM64)
- Windows (x86_64, ARM64)
- macOS (ARM64)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Documentation site generation and deployment
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.12.2'
cache: 'npm'
cache-dependency-path: './docs/package.json'
- name: Install documentation dependencies
working-directory: ./docs
run: npm install
- name: Generate documentation site
run: ./releases/htt-linux-x86_64 ./docs/gensite.lua
env:
SITE_PREFIX: /htt/
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/out
force_orphan: true