From 8764a981561c082b659da5f8c025d05ff7e6dc37 Mon Sep 17 00:00:00 2001 From: Deivid Soto Date: Wed, 27 May 2026 15:45:45 +0200 Subject: [PATCH] ci: port workflows from .github/ to .forgejo/ (Forgejo Actions) GitHub torrentclaw org is shadow-banned; CI is hosted at git.torrentclaw.com now. Move workflows into the runner's natively-watched .forgejo/workflows/ tree and adapt steps to run in the available 'docker'-labeled Forgejo runner without GitHub-only tooling (gh CLI, third-party marketplace actions). - Use container: image to ship the toolchain (no actions/setup-* needed). - Drop GitHub-only marketplace actions in favour of upstream installers invoked over curl/apt. - Where a workflow created a GitHub Release (release.yml), substitute the step with a curl call against the Forgejo Releases API (POST /repos///releases). --- {.github => .forgejo}/workflows/ci.yml | 48 +++++++++++--------------- 1 file changed, 21 insertions(+), 27 deletions(-) rename {.github => .forgejo}/workflows/ci.yml (56%) diff --git a/.github/workflows/ci.yml b/.forgejo/workflows/ci.yml similarity index 56% rename from .github/workflows/ci.yml rename to .forgejo/workflows/ci.yml index 9f48b90..0719489 100644 --- a/.github/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -12,17 +12,21 @@ permissions: jobs: test: name: Test - runs-on: ubuntu-latest + runs-on: docker + container: + image: docker.io/library/golang:1.24 strategy: matrix: go-version: ["1.22", "1.23", "1.24"] steps: - uses: actions/checkout@v4 - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} + - name: Pin Go version (matrix override) + if: matrix.go-version != '1.24' + run: | + curl -sSL "https://go.dev/dl/go${{ matrix.go-version }}.linux-amd64.tar.gz" \ + | tar -C /usr/local --strip-components=1 -xz + go version - name: Run tests run: go test -v -race -count=1 ./... @@ -33,45 +37,35 @@ jobs: go test -race -coverprofile=coverage.out -covermode=atomic ./... COVERAGE=$(go tool cover -func=coverage.out | grep total | awk '{print $3}' | sed 's/%//') echo "Total coverage: ${COVERAGE}%" + apt-get update && apt-get install -y --no-install-recommends bc if [ "$(echo "$COVERAGE < 90" | bc)" -eq 1 ]; then echo "::error::Coverage ${COVERAGE}% is below 90% threshold" exit 1 fi - - name: Upload coverage - if: matrix.go-version == '1.24' - uses: codecov/codecov-action@v4 - with: - files: coverage.out - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - lint: name: Lint - runs-on: ubuntu-latest + runs-on: docker + container: + image: docker.io/library/golang:1.24 steps: - uses: actions/checkout@v4 - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: "1.24" + - name: Install golangci-lint + run: | + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh \ + | sh -s -- -b /usr/local/bin latest - name: Run golangci-lint - uses: golangci/golangci-lint-action@v6 - with: - version: latest + run: golangci-lint run ./... vet: name: Vet - runs-on: ubuntu-latest + runs-on: docker + container: + image: docker.io/library/golang:1.24 steps: - uses: actions/checkout@v4 - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: "1.24" - - name: Run go vet run: go vet ./...