From 6eee64cf0d33ee7c3d46e2f890fcec2b7e97863f Mon Sep 17 00:00:00 2001 From: mozillazg Date: Sat, 27 Apr 2024 10:30:56 +0800 Subject: [PATCH] ci: add goreleaser --- .github/workflows/goreleaser.yml | 33 ++++++++++++++++++++++++++++++++ .github/workflows/test.yml | 21 ++++++++++++++++++++ .goreleaser.yml | 31 ++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 .github/workflows/goreleaser.yml create mode 100644 .goreleaser.yml diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml new file mode 100644 index 00000000..803af7c1 --- /dev/null +++ b/.github/workflows/goreleaser.yml @@ -0,0 +1,33 @@ +name: goreleaser + +on: + push: + tags: + - v* + +jobs: + goreleaser: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21.0' + env: + GOPATH: ${{ env.HOME }} + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v5 + with: + version: latest + args: release --clean + env: + GOPATH: ${{ env.HOME }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b69ecea3..f391508b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,3 +32,24 @@ jobs: - name: Test run: make test + + releaser-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.21 + env: + GOPATH: ${{ env.HOME }} + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v5 + with: + distribution: goreleaser + version: latest + args: release --snapshot --rm-dist --skip-publish + env: + GOPATH: ${{ env.HOME }} diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 00000000..fad59789 --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,31 @@ +before: + hooks: + - sudo apt-get install -y gcc flex bison make libelf-dev + - make libpcap + +builds: + - id: ptcpdump + binary: ptcpdump + env: + - CGO_ENABLED=1 + - CGO_CFLAGS='-I./output/libpcap/include' + - CGO_LDFLAGS='-L./output/libpcap/lib -lelf -lz ./output/libpcap/lib/libpcap.a' + flags: + - -tags=static + ldflags: + - -extldflags "-static" + - -X github.com/mozillazg/ptcpdump/internal.Version={{.Version}} + - -X github.com/mozillazg/ptcpdump/internal.GitCommit={{.Commit}} + goos: + - linux + goarch: + - amd64 + +checksum: + name_template: 'checksums.txt' + +release: + prerelease: auto + +snapshot: + name_template: "{{ .Tag }}-next"