Skip to content

Release

Release #1

Workflow file for this run

name: Release
on:
workflow_dispatch:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.9
- run: bun install --frozen-lockfile
- run: bun test
- run: bun run typecheck
- name: Build binaries
env:
QUAY_VERSION: ${{ github.ref_name }}
run: |
bun run scripts/embed.ts
bun build --compile --no-compile-autoload-bunfig --no-compile-autoload-dotenv --target=bun-linux-x64 src/cli/index.ts --outfile dist/quay-linux-amd64
bun build --compile --no-compile-autoload-bunfig --no-compile-autoload-dotenv --target=bun-linux-arm64 src/cli/index.ts --outfile dist/quay-linux-arm64
bun build --compile --no-compile-autoload-bunfig --no-compile-autoload-dotenv --target=bun-darwin-x64 src/cli/index.ts --outfile dist/quay-darwin-amd64
bun build --compile --no-compile-autoload-bunfig --no-compile-autoload-dotenv --target=bun-darwin-arm64 src/cli/index.ts --outfile dist/quay-darwin-arm64
- name: Smoke test linux-amd64 binary
run: |
version="$(./dist/quay-linux-amd64 --version)"
case "$version" in
"${GITHUB_REF_NAME}+"*) ;;
*) echo "expected ${GITHUB_REF_NAME}+<sha>, got ${version}"; exit 1 ;;
esac
- name: Generate checksums
working-directory: dist
run: sha256sum quay-* > SHA256SUMS
- name: Create release
run: |
gh release create "${GITHUB_REF_NAME}" \
--generate-notes \
dist/quay-* dist/SHA256SUMS