diff --git a/.gitea/workflows/release-scraper.yaml b/.gitea/workflows/release-scraper.yaml new file mode 100644 index 0000000..7acd530 --- /dev/null +++ b/.gitea/workflows/release-scraper.yaml @@ -0,0 +1,65 @@ +name: Release / Scraper + +on: + push: + tags: + - "v*" + +concurrency: + group: ${{ gitea.workflow }}-${{ gitea.ref }} + cancel-in-progress: true + +jobs: + # ── lint & test ────────────────────────────────────────────────────────────── + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version-file: scraper/go.mod + cache-dependency-path: scraper/go.sum + + - name: go vet + working-directory: scraper + run: | + go vet ./... + go vet -tags integration ./... + + - name: Run tests + working-directory: scraper + run: go test -short -race -count=1 -timeout=60s ./... + + # ── docker build & push ────────────────────────────────────────────────────── + docker: + name: Docker + runs-on: ubuntu-latest + needs: [test] + steps: + - uses: actions/checkout@v4 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USER }} + password: ${{ secrets.DOCKER_TOKEN }} + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ secrets.DOCKER_USER }}/libnovel-scraper + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=raw,value=latest + + - name: Build and push + uses: docker/build-push-action@v6 + with: + context: scraper + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }}