Skip to content

docs: update README descriptor and motto #23

docs: update README descriptor and motto

docs: update README descriptor and motto #23

Workflow file for this run

name: Alpha Release
on:
push:
branches:
- v3.0.0
permissions:
contents: write
jobs:
alpha-tag:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get next alpha version
id: version
run: |
LATEST=$(git tag -l 'v3.0.0-alpha.*' --sort=-v:refname | head -1)
if [ -z "$LATEST" ]; then
NEXT="v3.0.0-alpha.1"
else
N=$(echo "$LATEST" | sed 's/v3.0.0-alpha.//')
NEXT="v3.0.0-alpha.$((N + 1))"
fi
echo "version=$NEXT" >> $GITHUB_OUTPUT
echo "Next alpha version: $NEXT"
- name: Generate changelog since last alpha
run: |
LATEST=$(git tag -l 'v3.0.0-alpha.*' --sort=-v:refname | head -1)
if [ -z "$LATEST" ]; then
git log --oneline -20 --pretty=format:"- %s" > /tmp/changelog.txt
else
git log "${LATEST}..HEAD" --oneline --pretty=format:"- %s" > /tmp/changelog.txt
fi
- name: Create tag
run: |
git tag ${{ steps.version.outputs.version }}
git push origin ${{ steps.version.outputs.version }}
- name: Create pre-release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
CHANGELOG=$(cat /tmp/changelog.txt)
gh release create ${{ steps.version.outputs.version }} \
--prerelease \
--target v3.0.0 \
--title "${{ steps.version.outputs.version }}" \
--notes "## EZ v3.0.0 Alpha
**This is a pre-release.** Not recommended for production use.
### Changes since last alpha
${CHANGELOG}
"
build-binaries:
needs: alpha-tag
strategy:
matrix:
include:
- os: ubuntu-latest
goos: linux
goarch: amd64
name: linux-amd64
- os: ubuntu-latest
goos: linux
goarch: arm64
name: linux-arm64
- os: macos-latest
goos: darwin
goarch: arm64
name: darwin-arm64
- os: macos-latest
goos: darwin
goarch: amd64
name: darwin-amd64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.23'
- name: Build EZ CLI
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: go build -o ez ./cmd/ez
- name: Build EZC compiler
run: |
cd ezc
make clean
make build
- name: Package release
run: |
mkdir -p staging
cp ez staging/
cp ezc/ezc staging/
cp ezc/libezrt.a staging/
# Include runtime and stdlib sources (needed by ezc at compile time)
mkdir -p staging/lib/runtime staging/lib/stdlib
cp ezc/src/runtime/*.c ezc/src/runtime/*.h staging/lib/runtime/
cp ezc/src/stdlib/*.c ezc/src/stdlib/*.h staging/lib/stdlib/
tar czf "ez-${{ matrix.name }}.tar.gz" -C staging .
- name: Upload to release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload ${{ needs.alpha-tag.outputs.version }} \
"ez-${{ matrix.name }}.tar.gz" --clobber