name: CI on: push: branches: [ main ] paths-ignore: - '**.md' - '.gitea/**' - 'LICENSE' pull_request: workflow_dispatch: concurrency: group: ${{ gitea.workflow }}-${{ gitea.ref }} cancel-in-progress: true jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.23' check-latest: true - name: Run tests run: go test ./... -v -count=1 -timeout 120s 2>&1 - name: Vet run: go vet ./... build-and-package: if: always() needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.23' check-latest: true - name: Build binary run: go build -ldflags="-s -w" -o ratatoskr ./cmd/ratatoskr/ - name: Upload to Gitea Packages if: gitea.ref == 'refs/heads/main' run: | VERSION="commit-$(echo '${{ gitea.sha }}' | cut -c1-7)" curl -sS -X PUT \ -H "Authorization: token ${{ secrets.TC_GITEA_TOKEN }}" \ -H "Content-Type: application/octet-stream" \ "${{ vars.GIT_MAIN_URL }}/api/packages/${{ gitea.actor }}/generic/ratatoskr/${VERSION}/ratatoskr" \ --data-binary @ratatoskr echo "Uploaded version ${VERSION}" - name: Update latest tag if: gitea.ref == 'refs/heads/main' run: | curl -sS -X PUT \ -H "Authorization: token ${{ secrets.TC_GITEA_TOKEN }}" \ -H "Content-Type: application/octet-stream" \ "${{ vars.GIT_MAIN_URL }}/api/packages/${{ gitea.actor }}/generic/ratatoskr/latest/ratatoskr" \ --data-binary @ratatoskr echo "Updated 'latest' tag" - name: Store binary (PR only) if: gitea.ref != 'refs/heads/main' run: ls -lh ratatoskr