Skip to content

Commit 87df98b

Browse files
authored
Update release.yaml
1 parent 313a734 commit 87df98b

1 file changed

Lines changed: 31 additions & 131 deletions

File tree

.github/workflows/release.yaml

Lines changed: 31 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,16 @@
1-
name: Release binaries
1+
name: Release database
22

33
on:
4-
push:
5-
tags:
6-
- "v*"
4+
schedule:
5+
- cron: "17 3 * * *"
76
workflow_dispatch:
8-
inputs:
9-
tag:
10-
description: "Release tag, for example v0.1.0"
11-
required: true
12-
type: string
13-
prerelease:
14-
description: "Mark release as prerelease"
15-
required: false
16-
default: false
17-
type: boolean
187

198
permissions:
209
contents: write
2110

2211
jobs:
23-
build:
24-
name: Build ${{ matrix.goos }}-${{ matrix.goarch }}
25-
runs-on: ubuntu-latest
26-
strategy:
27-
fail-fast: false
28-
matrix:
29-
include:
30-
- goos: linux
31-
goarch: amd64
32-
- goos: linux
33-
goarch: arm64
34-
- goos: darwin
35-
goarch: amd64
36-
- goos: darwin
37-
goarch: arm64
38-
- goos: windows
39-
goarch: amd64
40-
steps:
41-
- uses: actions/checkout@v4
42-
43-
- uses: actions/setup-go@v5
44-
with:
45-
go-version-file: go.mod
46-
cache: true
47-
48-
- name: Resolve version
49-
id: version
50-
run: |
51-
if [ "${GITHUB_EVENT_NAME}" = "workflow_dispatch" ]; then
52-
echo "value=${{ inputs.tag }}" >> "$GITHUB_OUTPUT"
53-
else
54-
echo "value=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
55-
fi
56-
57-
- name: Build binary
58-
env:
59-
GOOS: ${{ matrix.goos }}
60-
GOARCH: ${{ matrix.goarch }}
61-
CGO_ENABLED: "0"
62-
VERSION: ${{ steps.version.outputs.value }}
63-
run: |
64-
set -euo pipefail
65-
mkdir -p dist
66-
name="blackroute_${VERSION}_${GOOS}_${GOARCH}"
67-
binary="blackroute"
68-
if [ "$GOOS" = "windows" ]; then
69-
binary="blackroute.exe"
70-
fi
71-
go build -trimpath -ldflags="-s -w" -o "dist/${binary}" ./cmd/collector
72-
cp README.md LICENSE configs/feeds.yaml dist/
73-
if [ "$GOOS" = "windows" ]; then
74-
(cd dist && zip -q "../${name}.zip" "$binary" README.md LICENSE feeds.yaml)
75-
else
76-
tar -czf "${name}.tar.gz" -C dist "$binary" README.md LICENSE feeds.yaml
77-
fi
78-
79-
- uses: actions/upload-artifact@v4
80-
with:
81-
name: blackroute-${{ steps.version.outputs.value }}-${{ matrix.goos }}-${{ matrix.goarch }}
82-
path: |
83-
blackroute_*.tar.gz
84-
blackroute_*.zip
85-
if-no-files-found: error
86-
8712
database:
88-
name: Build database artifacts
13+
name: Build and publish database
8914
runs-on: ubuntu-latest
9015
steps:
9116
- uses: actions/checkout@v4
@@ -95,20 +20,20 @@ jobs:
9520
go-version-file: go.mod
9621
cache: true
9722

98-
- name: Resolve version
99-
id: version
23+
- name: Resolve release tag
24+
id: release
10025
run: |
101-
if [ "${GITHUB_EVENT_NAME}" = "workflow_dispatch" ]; then
102-
echo "value=${{ inputs.tag }}" >> "$GITHUB_OUTPUT"
103-
else
104-
echo "value=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
105-
fi
26+
day="$(date -u +'%Y.%m.%d')"
27+
echo "tag=$day" >> "$GITHUB_OUTPUT"
28+
echo "name=Blackroute $day" >> "$GITHUB_OUTPUT"
10629
10730
- name: Build Blackroute database
10831
env:
109-
VERSION: ${{ steps.version.outputs.value }}
32+
VERSION: ${{ steps.release.outputs.tag }}
11033
run: |
11134
set -euo pipefail
35+
mkdir -p dist
36+
11237
go build -trimpath -ldflags="-s -w" -o ./bin/blackroute ./cmd/collector
11338
./bin/blackroute --feeds=configs/feeds.yaml --output=release
11439
@@ -117,46 +42,10 @@ jobs:
11742
test -s release/blackroute.jsonl
11843
test -s release/run_stats.json
11944
120-
cp release/blackroute.mmdb "blackroute_${VERSION}_database.mmdb"
121-
cp release/blackroute.csv "blackroute_${VERSION}_records.csv"
122-
cp release/blackroute.jsonl "blackroute_${VERSION}_records.jsonl"
123-
cp release/run_stats.json "blackroute_${VERSION}_run_stats.json"
124-
tar -czf "blackroute_${VERSION}_database.tar.gz" -C release \
125-
blackroute.mmdb blackroute.csv blackroute.jsonl run_stats.json
126-
127-
- uses: actions/upload-artifact@v4
128-
with:
129-
name: blackroute-${{ steps.version.outputs.value }}-database
130-
path: |
131-
blackroute_*_database.tar.gz
132-
blackroute_*_database.mmdb
133-
blackroute_*_records.csv
134-
blackroute_*_records.jsonl
135-
blackroute_*_run_stats.json
136-
if-no-files-found: error
137-
138-
publish:
139-
name: Publish GitHub release
140-
needs:
141-
- build
142-
- database
143-
runs-on: ubuntu-latest
144-
steps:
145-
- uses: actions/download-artifact@v4
146-
with:
147-
path: dist
148-
merge-multiple: true
149-
150-
- name: Resolve release tag
151-
id: release
152-
run: |
153-
if [ "${GITHUB_EVENT_NAME}" = "workflow_dispatch" ]; then
154-
echo "tag=${{ inputs.tag }}" >> "$GITHUB_OUTPUT"
155-
echo "prerelease=${{ inputs.prerelease }}" >> "$GITHUB_OUTPUT"
156-
else
157-
echo "tag=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
158-
echo "prerelease=false" >> "$GITHUB_OUTPUT"
159-
fi
45+
cp release/blackroute.mmdb "dist/blackroute_${VERSION}.mmdb"
46+
cp release/run_stats.json "dist/blackroute_${VERSION}_run_stats.json"
47+
tar -czf "dist/blackroute_${VERSION}_exports.tar.gz" -C release \
48+
blackroute.csv blackroute.jsonl run_stats.json
16049
16150
- name: Checksums
16251
run: |
@@ -169,8 +58,19 @@ jobs:
16958
uses: softprops/action-gh-release@v2
17059
with:
17160
tag_name: ${{ steps.release.outputs.tag }}
172-
name: Blackroute ${{ steps.release.outputs.tag }}
173-
prerelease: ${{ steps.release.outputs.prerelease }}
174-
generate_release_notes: true
61+
name: ${{ steps.release.outputs.name }}
62+
prerelease: false
63+
make_latest: true
64+
body: |
65+
Daily Blackroute database build.
66+
67+
Assets:
68+
- `blackroute_${{ steps.release.outputs.tag }}.mmdb`
69+
- `blackroute_${{ steps.release.outputs.tag }}_exports.tar.gz`
70+
- `blackroute_${{ steps.release.outputs.tag }}_run_stats.json`
71+
- `checksums.txt`
17572
files: |
176-
dist/*
73+
dist/blackroute_*.mmdb
74+
dist/blackroute_*_exports.tar.gz
75+
dist/blackroute_*_run_stats.json
76+
dist/checksums.txt

0 commit comments

Comments
 (0)