Skip to content

improve ci

improve ci #260

Workflow file for this run

name: integration
on:
pull_request:
concurrency:
group: integration-${{ github.event.number }}
cancel-in-progress: true
jobs:
snapshot:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: false
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release --config ./.goreleaser.ci.yml --clean --snapshot
- name: Copy .ini files
run: cp targets.ini rbls.ini ./dist/dnsbl_exporter_linux_amd64_v1
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: dnsbl_exporter
path: dist/dnsbl_exporter_linux_amd64_v1
integration:
runs-on: ubuntu-latest
needs:
- snapshot
services:
unbound:
image: klutchell/unbound:latest
ports:
- 5053:5053/tcp
- 5053:5053/udp
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: dnsbl_exporter
path: ./dist/dnsbl_exporter_linux_amd64_v1
- run: tree ./dist
- run: |
chmod +x ./dist/dnsbl_exporter_linux_amd64_v1/dnsbl-exporter
./dist/dnsbl_exporter_linux_amd64_v1/dnsbl-exporter --log.debug --config.dns-resolver=localhost:5053 &
echo $! > dnsbl_exporter.pid
pid=`cat dnsbl_exporter.pid`
echo "✅ started dnsbl-exporter: ${pid}" >> $GITHUB_STEP_SUMMARY
- run: |
timeout 60 bash -c 'until curl -f http://localhost:9211/; do sleep 1; done'
echo "✅ dnsbl-exporter has started" >> $GITHUB_STEP_SUMMARY
- name: test metrics
run: |
curl -f http://localhost:9211/metrics
- name: test prober
run: |
curl -f http://localhost:9211/prober?target=github.com
- if: always()
run: |
if [ -f dnsbl_exporter.pid ]; then
kill $(cat dnsbl_exporter.pid) || true
fi