Skip to content

docs: update release guide (clarify CI/local release behavior) #1

docs: update release guide (clarify CI/local release behavior)

docs: update release guide (clarify CI/local release behavior) #1

Workflow file for this run

name: release
on:
push:
tags:
- 'classlib-*'
jobs:
publish:
name: Build and publish release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '8'
- name: Make build script executable
run: chmod +x ./build.sh || true
- name: Check if release already exists
id: check_release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -e
# derive tag name from ref
TAG=${GITHUB_REF#refs/tags/}
echo "Checking for existing release for tag: $TAG"
if curl -sf -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/tags/$TAG" >/dev/null; then
echo "exists=true" >> "$GITHUB_OUTPUT"
echo "Release for $TAG already exists; CI will skip publishing."
else
echo "exists=false" >> "$GITHUB_OUTPUT"
echo "No existing release for $TAG; CI will publish."
fi
- name: Build artifacts
if: steps.check_release.outputs.exists == 'false'
# Pass -Djava.runtime.version=1.6 to satisfy legacy Ant java version check
run: ./build.sh -Djava.runtime.version=1.6 classlib-pack classlib-src-bz
- name: Generate MD5 checksums
if: steps.check_release.outputs.exists == 'false'
run: |
set -e
ART_DIR=all/build
for f in classlib.pack.gz classlib-src.jar.bz2; do
if [ -f "${ART_DIR}/${f}" ]; then
md5sum "${ART_DIR}/${f}" | awk '{print $1}' > "${ART_DIR}/${f}.md5"
fi
done
- name: Create GitHub Release and upload assets
if: steps.check_release.outputs.exists == 'false'
uses: softprops/action-gh-release@v1
with:
files: |
all/build/classlib.pack.gz
all/build/classlib.pack.gz.md5
all/build/classlib-src.jar.bz2
all/build/classlib-src.jar.bz2.md5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}