name: release-nightly on: push: branches: [main] env: GIT_SSL_NO_VERIFY: true GOPRIVATE: git.lethalbits.com/* GONOSUMCHECK: git.lethalbits.com/* GOINSECURE: git.lethalbits.com/* jobs: publish-nightly: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 with: fetch-depth: 0 - uses: actions/setup-go@v6 with: go-version: stable - name: Build all platforms run: | VERSION=$(git describe --tags --always | sed 's/-/+/' | sed 's/^v//') TARGETS="linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64" for target in $TARGETS; do OS=${target%/*}; ARCH=${target#*/} case $ARCH in amd64) UARCH=x86_64;; arm64) UARCH=arm64;; esac case $OS in linux) UOS=Linux;; darwin) UOS=Darwin;; windows) UOS=Windows;; esac EXT=tar.gz; [ "$OS" = "windows" ] && EXT=zip OUTDIR="dist/gitea-mcp-extended_${UOS}_${UARCH}" mkdir -p "$OUTDIR" CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH \ go build -trimpath -ldflags "-s -w -X main.Version=$VERSION" \ -o "$OUTDIR/gitea-mcp-extended$([ $OS = windows ] && echo .exe)" ARCHIVE="gitea-mcp-extended_${UOS}_${UARCH}.${EXT}" if [ "$EXT" = "zip" ]; then (cd "$OUTDIR" && zip -r "../../$ARCHIVE" .) else tar czf "$ARCHIVE" -C "$OUTDIR" . fi done - name: Publish nightly to Generic Package Registry run: | for f in gitea-mcp-extended_*.{tar.gz,zip}; do [ -f "$f" ] || continue # Delete old nightly file first (can't overwrite) curl -sf -X DELETE --user "${{ gitea.actor }}:${{ secrets.GITHUB_TOKEN }}" \ "${{ gitea.server_url }}/api/packages/lethalbits/generic/gitea-mcp-extended/nightly/${f}" || true curl -sf --user "${{ gitea.actor }}:${{ secrets.GITHUB_TOKEN }}" \ --upload-file "$f" \ "${{ gitea.server_url }}/api/packages/lethalbits/generic/gitea-mcp-extended/nightly/${f}" done