release #49
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: release | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: "20 3 * * *" | |
| push: | |
| tags: | |
| - "v*" | |
| concurrency: | |
| group: asnforge-release-publish-${{ github.ref }} | |
| cancel-in-progress: false | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.22" | |
| cache: true | |
| - name: build asnforge | |
| run: go build -ldflags "-X github.com/ipanalytics/ASNforge/internal/version.Version=${GITHUB_REF_NAME} -X github.com/ipanalytics/ASNforge/internal/version.Commit=${GITHUB_SHA} -X github.com/ipanalytics/ASNforge/internal/version.Date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" -o asnforge ./cmd/asnforge | |
| - name: build release artifacts | |
| run: ./asnforge build --config config/public-safe.yaml --out release/current | |
| - name: validate release artifacts | |
| run: ./asnforge validate --out release/current --strict | |
| - name: generate release notes | |
| run: ./asnforge release-notes --out release/current --release-notes release/current/release-notes.md | |
| - name: commit README release stats | |
| if: github.ref_type != 'tag' | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| git fetch origin "$GITHUB_REF_NAME" | |
| git rebase "origin/$GITHUB_REF_NAME" | |
| ./asnforge update-readme-stats --out release/current --readme README.md | |
| git add README.md | |
| git diff --cached --quiet || git commit -m "Update latest ASNForge release stats [skip ci]" | |
| git push origin "HEAD:$GITHUB_REF_NAME" | |
| - name: compute release tag | |
| id: tag | |
| run: | | |
| if [[ "$GITHUB_REF_TYPE" == "tag" ]]; then | |
| echo "tag=$GITHUB_REF_NAME" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "tag=data-$(date -u +%Y%m%d-%H%M%SZ)" >> "$GITHUB_OUTPUT" | |
| fi | |
| - name: publish GitHub release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ steps.tag.outputs.tag }} | |
| body_path: release/current/release-notes.md | |
| files: | | |
| release/current/asnforge.mmdb.gz | |
| release/current/asnforge-asn.jsonl.gz | |
| release/current/asnforge-asn.csv.gz | |
| release/current/asnforge-prefixes.jsonl.gz | |
| release/current/asnforge-prefixes.csv.gz | |
| release/current/metadata.json | |
| release/current/checksums.txt | |
| release/current/quality-report.md | |
| release/current/release-notes.md | |
| release/current/asnforge-diff.json | |
| release/current/manifest.json |