Files
wireguard-vpn/.gitea/workflows/release.yaml
T
datadunia f71ef8c3e4
Release / build (arm64) (push) Has been cancelled
Release / generate-latest-json (push) Has been cancelled
Release / build (amd64) (push) Has been cancelled
fix: shallow
2026-05-07 06:23:02 +07:00

99 lines
3.5 KiB
YAML

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
actions: read
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
goarch: [amd64, arm64]
steps:
- name: Clone repository with submodules
run: |
# Gunakan Secret yang baru dibuat (MY_GITEA_TOKEN)
# Gitea menggunakan "token" atau "Bearer", coba salah satu yang paling cocok
AUTH_HEADER="Authorization: token ${{ secrets.MY_GITEA_TOKEN }}"
export GIT_CONFIG_COUNT=1
export GIT_CONFIG_KEY_0="http.extraheader"
export GIT_CONFIG_VALUE_0="$AUTH_HEADER"
git clone --recurse-submodules ${{ gitea.server_url }}/${{ gitea.repository }}.git .
# Debug
ls -la app/frontend
- name: Setup Go
uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff
with:
go-version: '1.22'
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version: '20'
- name: Build Vue frontend
run: |
cd app/frontend
npm install
npm run build
- name: Build Go binary
env:
GOOS: linux
GOARCH: ${{ matrix.goarch }}
run: |
cd app
go build -o ../wgrplane-linux-${{ matrix.goarch }} .
- name: Upload binary artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: wgrplane-linux-${{ matrix.goarch }}
path: wgrplane-linux-${{ matrix.goarch }}
- name: Generate latest.json
run: |
VERSION="${{ gitea.ref_name }}"
if [ -z "$VERSION" ]; then
VERSION="$(git rev-parse --short HEAD)"
fi
RELEASE_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')"
CHANGELOG="$(git log --oneline --no-merges $(git describe --tags --abbrev=0 2>/dev/null || echo 'HEAD~10')..HEAD 2>/dev/null || git log --oneline --no-merges -10)"
# Generate latest.json
cat > latest.json << EOF
{
"version": "$VERSION",
"release_date": "$RELEASE_DATE",
"changelog": $(echo "$CHANGELOG" | jq -R -s '.'),
"download_urls": {
"amd64": "${{ gitea.server_url }}/${{ gitea.repository }}/actions/runs/${{ gitea.run_id }}/artifacts/$(curl -s -H 'Authorization: Bearer ${{ secrets.TOKEN }}' '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/actions/runs/${{ gitea.run_id }}/artifacts' | jq -r '.data[] | select(.name == "wgrplane-linux-amd64") | .id')",
"arm64": "${{ gitea.server_url }}/${{ gitea.repository }}/actions/runs/${{ gitea.run_id }}/artifacts/$(curl -s -H 'Authorization: Bearer ${{ secrets.TOKEN }}' '${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/actions/runs/${{ gitea.run_id }}/artifacts' | jq -r '.data[] | select(.name == "wgrplane-linux-arm64") | .id')"
}
}
EOF
- name: Upload latest.json artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: latest.json
path: latest.json
generate-latest-json:
needs: build
runs-on: ubuntu-latest
steps:
- name: Cleanup Git Config
if: always() # Pastikan tetap jalan meski job gagal
run: |
git config --global --unset-all url."https://token:${{ gitea.token }}@${{ gitea.server_url | replace("https://", "") }}/".insteadOf