Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 73 additions & 19 deletions .github/workflows/release-binary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,88 @@ name: 🎉 Release Binary
on:
push:
tags:
- '*'
- v*
workflow_dispatch:

jobs:
release:
build-mac:
runs-on: macos-latest
steps:
- uses: actions/checkout@v5
- uses: projectdiscovery/actions/setup/go@v1

- name: Install Dependences
run: brew install libpcap
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release -f .goreleaser/mac.yml --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

build-linux:
runs-on: ubuntu-latest-16-cores
steps:
- name: "Check out code"
uses: actions/checkout@v3
with:
- name: Code checkout
uses: actions/checkout@v5
with:
fetch-depth: 0

- name: "Set up Go"
uses: actions/setup-go@v4
with:
go-version: 1.21.x

- name: Install libpcap-dev
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: 1.24.x
- name: Install Dependences
run: sudo apt install libpcap-dev

- name: "Create release on GitHub"
uses: goreleaser/goreleaser-action@v4
with:
args: "release --clean"

- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
version: latest
workdir: .
args: release -f .goreleaser/linux-amd64.yml --clean
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
SLACK_WEBHOOK: "${{ secrets.RELEASE_SLACK_WEBHOOK }}"
DISCORD_WEBHOOK_ID: "${{ secrets.DISCORD_WEBHOOK_ID }}"
DISCORD_WEBHOOK_TOKEN: "${{ secrets.DISCORD_WEBHOOK_TOKEN }}"
DISCORD_WEBHOOK_TOKEN: "${{ secrets.DISCORD_WEBHOOK_TOKEN }}"

build-linux-arm64:
runs-on: ubuntu-24.04-arm
steps:
- name: Code checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: 1.24.x
- name: Install Dependences
run: sudo apt install libpcap-dev

- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release -f .goreleaser/linux-arm64.yml --clean
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

build-windows:
runs-on: windows-latest-8-cores
steps:
- name: Code checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: 1.24.x
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release -f .goreleaser/windows.yml --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48 changes: 34 additions & 14 deletions .github/workflows/release-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,48 @@ on:
paths:
- '**.go'
- '**.mod'
- '**.yml'
workflow_dispatch:

jobs:
release-test:
runs-on: ubuntu-latest-16-cores
release-test-mac:
runs-on: macos-latest
steps:
- name: "Check out code"
uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/checkout@v5
- uses: projectdiscovery/actions/setup/go@v1

- name: Install Dependences
run: brew install libpcap

- name: Set up Go
uses: actions/setup-go@v4
- name: release test
uses: goreleaser/goreleaser-action@v6
with:
go-version: 1.21.x

- name: Install libpcap-dev
args: "release --clean --snapshot -f .goreleaser/mac.yml"
version: latest

release-test-linux:
runs-on: ubuntu-latest-16-cores
steps:
- uses: actions/checkout@v5
- uses: projectdiscovery/actions/setup/go@v1

- name: Install Dependences
run: sudo apt install libpcap-dev

- name: release test
uses: goreleaser/goreleaser-action@v6
with:
args: "release --clean --snapshot -f .goreleaser/linux.yml"
version: latest

release-test-windows:
runs-on: windows-latest-8-cores
steps:
- uses: actions/checkout@v5
- uses: projectdiscovery/actions/setup/go@v1

- name: release test
uses: goreleaser/goreleaser-action@v4
uses: goreleaser/goreleaser-action@v6
with:
args: "release --clean --snapshot"
args: "release --clean --snapshot -f .goreleaser/windows.yml"
version: latest
workdir: .
4 changes: 4 additions & 0 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ builds:
ignore:
- goos: darwin
goarch: '386'
- goos: darwin
goarch: amd64
- goos: darwin
goarch: arm64
- goos: linux
goarch: '386'
- goos: linux
Expand Down
38 changes: 38 additions & 0 deletions .goreleaser/linux-amd64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
env:
- GO111MODULE=on
before:
hooks:
- go mod tidy
project_name: pd-agent
builds:
- id: pd-agent-linux-amd64
ldflags:
- -s -w
binary: pd-agent
env:
- CGO_ENABLED=1
main: ./cmd/pd-agent/main.go
goos:
- linux
goarch:
- amd64

archives:
- formats:
- zip
name_template: '{{ .ProjectName }}_{{ .Version }}_{{ if eq .Os "darwin" }}macOS{{ else }}{{ .Os }}{{ end }}_{{ .Arch }}'

checksum:
name_template: "{{ .ProjectName }}-linux-amd64-checksums.txt"

announce:
slack:
enabled: true
channel: '#release'
username: GoReleaser
message_template: 'New Release: {{ .ProjectName }} {{.Tag}} is published! Check it out at {{ .ReleaseURL }}'

discord:
enabled: true
message_template: '**New Release: {{ .ProjectName }} {{.Tag}}** is published! Check it out at {{ .ReleaseURL }}'

38 changes: 38 additions & 0 deletions .goreleaser/linux-arm64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
env:
- GO111MODULE=on
before:
hooks:
- go mod tidy
project_name: pd-agent
builds:
- id: pd-agent-linux-arm64
ldflags:
- -s -w
binary: pd-agent
env:
- CGO_ENABLED=1
main: ./cmd/pd-agent/main.go
goos:
- linux
goarch:
- arm64

archives:
- formats:
- zip
name_template: '{{ .ProjectName }}_{{ .Version }}_{{ if eq .Os "darwin" }}macOS{{ else }}{{ .Os }}{{ end }}_{{ .Arch }}'

checksum:
name_template: "{{ .ProjectName }}-linux-arm64-checksums.txt"

announce:
slack:
enabled: false
channel: '#release'
username: GoReleaser
message_template: 'New Release: {{ .ProjectName }} {{.Tag}} is published! Check it out at {{ .ReleaseURL }}'

discord:
enabled: false
message_template: '**New Release: {{ .ProjectName }} {{.Tag}}** is published! Check it out at {{ .ReleaseURL }}'

38 changes: 38 additions & 0 deletions .goreleaser/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
env:
- GO111MODULE=on
before:
hooks:
- go mod tidy
project_name: pd-agent
builds:
- id: pd-agent-linux
ldflags:
- -s -w
binary: pd-agent
env:
- CGO_ENABLED=1
main: ./cmd/pd-agent/main.go
goos:
- linux
goarch:
- amd64
# - arm64

archives:
- formats:
- zip
name_template: '{{ .ProjectName }}_{{ .Version }}_{{ if eq .Os "darwin" }}macOS{{ else }}{{ .Os }}{{ end }}_{{ .Arch }}'

checksum:
name_template: "{{ .ProjectName }}-linux-checksums.txt"

announce:
slack:
enabled: true
channel: '#release'
username: GoReleaser
message_template: 'New Release: {{ .ProjectName }} {{.Tag}} is published! Check it out at {{ .ReleaseURL }}'

discord:
enabled: true
message_template: '**New Release: {{ .ProjectName }} {{.Tag}}** is published! Check it out at {{ .ReleaseURL }}'
27 changes: 27 additions & 0 deletions .goreleaser/mac.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
env:
- GO111MODULE=on
before:
hooks:
- go mod tidy
project_name: pd-agent
builds:
- id: pd-agent-darwin
ldflags:
- -s -w
binary: pd-agent
env:
- CGO_ENABLED=1
main: ./cmd/pd-agent/main.go
goos:
- darwin
goarch:
- amd64
- arm64
archives:
- formats:
- zip
name_template: '{{ .ProjectName }}_{{ .Version }}_{{ if eq .Os "darwin" }}macOS{{ else }}{{ .Os }}{{ end }}_{{ .Arch }}'


checksum:
name_template: "{{ .ProjectName }}-mac-checksums.txt"
27 changes: 27 additions & 0 deletions .goreleaser/windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
env:
- GO111MODULE=on
before:
hooks:
- go mod tidy
project_name: pd-agent
builds:
- id: pd-agent-windows
ldflags:
- -s -w
binary: pd-agent
# env:
# - CGO_ENABLED=1 # necessary only with winpcap
main: ./cmd/pd-agent/main.go
goos:
- windows
goarch:
- amd64
- arm64
- 386
archives:
- formats:
- zip
name_template: '{{ .ProjectName }}_{{ .Version }}_{{ if eq .Os "darwin" }}macOS{{ else }}{{ .Os }}{{ end }}_{{ .Arch }}'

checksum:
name_template: "{{ .ProjectName }}-windows-checksums.txt"
Loading
Loading