Files
go/.gitea/workflows/build-go.yaml
2025-10-01 19:47:28 +02:00

69 lines
2.2 KiB
YAML

name: Build Go Tarball
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
repository: stacksmith/go
token: ${{ secrets.CI_BOT_TOKEN }}
- name: Install dependencies
run: |
apt-get update -y
apt-get install -y curl tar build-essential jq
- name: Determine latest Go release
id: get_go
run: |
LATEST=$(curl -s https://go.dev/dl/?mode=json | jq -r '.[0].version')
LATEST_NUM=${LATEST#go} # -> "1.25.1"
echo "LATEST=$LATEST_NUM" >> $GITHUB_ENV
echo "Latest Go version: $LATEST_NUM"
- name: Check if package already exists
env:
GITEA_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
LATEST: ${{ env.LATEST }}
run: |
EXISTS=$(curl -s -H "Authorization: token $GITEA_TOKEN" \
"https://gitea.lulz.ltd/api/packages/list?owner=stacksmith&repo=go" \
| jq -r ".[] | select(.name==\"golang\" and .version==\"${LATEST}-debian12\") | .name")
if [ -n "$EXISTS" ]; then
echo "Package golang-${LATEST}-debian12 already exists. Skipping build."
exit 0
fi
- name: Download Go source
run: |
curl -LO https://go.dev/dl/go${LATEST}.src.tar.gz
tar -xzf ${LATEST}.src.tar.gz
- name: Build Go
run: |
cd go/src
./make.bash
cd ../..
mkdir -p golang-${LATEST}-linux-amd64-debian-12/files/go
cp -r go/* golang-${LATEST}-linux-amd64-debian-12/files/go/
- name: Package tarball
run: |
tar -czf golang-${LATEST}-linux-amd64-debian-12.tar.gz golang-${LATEST}-linux-amd64-debian-12
- name: Upload to Gitea Packages
env:
GITEA_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
LATEST: ${{ env.LATEST }}
run: |
curl -X POST \
-H "Authorization: token $GITEA_TOKEN" \
-F "package=@golang-${LATEST}-linux-amd64-debian-12.tar.gz" \
"https://gitea.lulz.ltd/api/packages/upload?owner=stacksmith&repo=go&package_name=golang&package_version=${LATEST}-debian12"