Files

93 lines
2.5 KiB
YAML

name: Draft release
on:
push:
tags:
- "v*"
permissions:
contents: write
jobs:
release:
name: Cross-build and create draft release
runs-on: ubuntu-latest
steps:
- name: Check out source
uses: actions/checkout@v6
- name: Install Zig
shell: bash
env:
ZIG_VERSION: 0.15.1
run: |
set -euo pipefail
archive="zig-x86_64-linux-${ZIG_VERSION}.tar.xz"
install_dir="${RUNNER_TEMP}/zig-${ZIG_VERSION}"
curl --fail --location --retry 3 \
--output "${RUNNER_TEMP}/${archive}" \
"https://ziglang.org/download/${ZIG_VERSION}/${archive}"
mkdir -p "${install_dir}"
tar -xJf "${RUNNER_TEMP}/${archive}" \
--strip-components=1 \
-C "${install_dir}"
"${install_dir}/zig" version
echo "${install_dir}" >> "${GITHUB_PATH}"
- name: Cross-build release binaries
run: zig build release --release=small
- name: Package release assets
shell: bash
env:
VERSION: ${{ github.ref_name }}
run: |
set -euo pipefail
mkdir -p dist
for target in \
x86_64-linux-musl \
aarch64-linux \
x86_64-macos.10.7 \
aarch64-macos.11.0 \
x86_64-windows \
aarch64-windows
do
extension=""
if [[ "${target}" == *-windows ]]; then
extension=".exe"
fi
stage="${RUNNER_TEMP}/l65-suite-${VERSION}-${target}"
mkdir -p "${stage}"
for binary in l65 lz80 l7801
do
asset="${binary}-${VERSION}-${target}${extension}"
cp "zig-out/${target}/${binary}${extension}" "dist/${asset}"
cp "dist/${asset}" "${stage}/${asset}"
done
if [[ "${target}" == *-windows ]]; then
zip -j \
"dist/l65-suite-${VERSION}-${target}.zip" \
"${stage}"/*
else
tar -czf \
"${GITHUB_WORKSPACE}/dist/l65-suite-${VERSION}-${target}.tar.gz" \
-C "${stage}" .
fi
done
cd dist
sha256sum ./* > SHA256SUMS
- name: Create draft release
uses: softprops/action-gh-release@v3
with:
draft: true
generate_release_notes: true
fail_on_unmatched_files: true
files: dist/*