Skip to content

merge feat/prone-fit-check: prone behaves like retail's #12

merge feat/prone-fit-check: prone behaves like retail's

merge feat/prone-fit-check: prone behaves like retail's #12

Workflow file for this run

name: Nightly
on:
push:
branches: [master]
# Docs and dev tooling do not change the binaries, so they do not earn a
# three-platform build. LICENSE and NOTICE are left off the list on
# purpose: the Stage step ships them in the archive. So does README.md,
# which a docs-only push therefore leaves one code push behind; run the
# workflow by hand to refresh it.
paths-ignore:
- '**.md'
- 'docs/**'
- 'tools/**'
- '.github/workflows/ci.yml'
- '.gitignore'
- 'opencode.json'
workflow_dispatch:
concurrency:
group: nightly
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
name: linux-amd64
- os: windows-latest
target: x86_64-pc-windows-msvc
name: windows-amd64
- os: macos-latest
target: aarch64-apple-darwin
name: macos-arm64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
- name: Install build deps
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends libasound2-dev
- run: rustup target add ${{ matrix.target }}
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.target }}
- name: Build
run: cargo build --release --workspace --target ${{ matrix.target }}
- name: Stage
shell: bash
run: |
dir=vcod-${{ matrix.name }}
mkdir "$dir"
for bin in vcod vcod-server; do
src=target/${{ matrix.target }}/release/$bin
if [ -f "$src.exe" ]; then src=$src.exe; fi
cp "$src" "$dir/"
done
cp README.md LICENSE NOTICE "$dir/"
# Piped through the zstd binary rather than `tar --zstd`, which the
# macOS runner's bsdtar does not carry.
- name: Archive (tar.zst)
if: runner.os != 'Windows'
run: tar cf - vcod-${{ matrix.name }} | zstd -19 -T0 -o vcod-${{ matrix.name }}.tar.zst
- name: Archive (zip)
if: runner.os == 'Windows'
run: Compress-Archive -Path vcod-${{ matrix.name }} -DestinationPath vcod-${{ matrix.name }}.zip
- uses: actions/upload-artifact@v7
with:
name: vcod-${{ matrix.name }}
path: vcod-${{ matrix.name }}.*
if-no-files-found: error
publish:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v7
- uses: actions/download-artifact@v8
with:
path: dist
merge-multiple: true
# Rolling release: the previous nightly and its tag go, then both are
# recreated at this commit, so the download URLs stay stable.
- name: Publish nightly
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release delete nightly --yes --cleanup-tag || true
gh release create nightly \
--prerelease \
--target "$GITHUB_SHA" \
--title "Nightly" \
--notes "Built from master at ${GITHUB_SHA:0:8} on $(date -u '+%Y-%m-%d %H:%M UTC'). Unstable by definition." \
dist/*