From 769dd4bacfd3c9e3d2e1f0905cae773049faa754 Mon Sep 17 00:00:00 2001 From: efiacor Date: Fri, 26 Jan 2024 09:52:36 +0000 Subject: [PATCH 1/4] Add goreleaser GH action config --- .github/workflows/release.yaml | 44 +++++++++++++++++ release/tag/goreleaser.yaml | 89 ++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 .github/workflows/release.yaml create mode 100644 release/tag/goreleaser.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000..6487f0fb --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,44 @@ +# Copyright 2024 The Nephio Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: porchctl Release +on: + push: + tags: + - "v[1-9].*.*" + +jobs: + build: + runs-on: ubuntu-latest + name: porchctl-release + outputs: + hashes: ${{ steps.hash.outputs.hashes }} + steps: + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: '>=1.21.5' + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Run GoReleaser + id: run-goreleaser + uses: goreleaser/goreleaser-action@v4 + with: + distribution: goreleaser + version: latest + args: release --skip-validate -f release/tag/goreleaser.yaml + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/release/tag/goreleaser.yaml b/release/tag/goreleaser.yaml new file mode 100644 index 00000000..6a76a98f --- /dev/null +++ b/release/tag/goreleaser.yaml @@ -0,0 +1,89 @@ +# Copyright 2024 The Nephio Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This defines the build for goreleaser (https://goreleaser.com/). It is +# executed through a Github Action that is triggered by new tags being created +# in the porch repo. +# As porch needs to be compiled with CGO, we cannot simply just provide a simple +# matrix of GOOS and GOARCH combinations, but instead, we'd need to define separate +# steps for each targeted OS and ARCH. This is because we need to specify the +# platform specific C std library (libc) and cross-compiler to be used. +env: + - CGO_ENABLED=0 + - GO111MODULE=on +builds: + - id: darwin-amd64 + env: + - CGO_ENABLED=0 + - GO111MODULE=on + goos: + - darwin + goarch: + - amd64 + ldflags: -s -w + main: ./cmd/porchctl + + - id: darwin-arm64 + env: + - CGO_ENABLED=0 + - GO111MODULE=on + goos: + - darwin + goarch: + - arm64 + ldflags: -s -w + main: ./cmd/porchctl + + - id: linux-amd64 + env: + - CGO_ENABLED=0 + - GO111MODULE=on + goos: + - linux + goarch: + - amd64 + ldflags: -s -w -extldflags "-z noexecstack" + main: ./cmd/porchctl + + - id: linux-arm64 + env: + - CGO_ENABLED=0 + - GO111MODULE=on + goos: + - linux + goarch: + - arm64 + ldflags: -s -w -extldflags "-z noexecstack" + main: ./cmd/porchctl + + +checksum: + name_template: "checksums.txt" +snapshot: + name_template: "main" +changelog: + sort: asc + filters: + exclude: + - "(?i)^docs:" + - "(?i)^test:" + - "(?i)^regenerate docs" + - Merge pull request + - Merge branch +release: + github: + owner: nephio + name: porchctl + draft: false + prerelease: "true" From 9ab377bd014b3d8e99c76d9578310d3f67f9e6a4 Mon Sep 17 00:00:00 2001 From: efiacor Date: Fri, 26 Jan 2024 12:15:23 +0000 Subject: [PATCH 2/4] Update gh release path --- release/tag/goreleaser.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release/tag/goreleaser.yaml b/release/tag/goreleaser.yaml index 6a76a98f..2111f9ba 100644 --- a/release/tag/goreleaser.yaml +++ b/release/tag/goreleaser.yaml @@ -83,7 +83,7 @@ changelog: - Merge branch release: github: - owner: nephio - name: porchctl + owner: nephio-project + name: porch draft: false prerelease: "true" From 9152219949c88e45243423fd4e49bb153b53fd0c Mon Sep 17 00:00:00 2001 From: efiacor Date: Fri, 26 Jan 2024 12:19:58 +0000 Subject: [PATCH 3/4] Add project_name to goreleaser --- release/tag/goreleaser.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/release/tag/goreleaser.yaml b/release/tag/goreleaser.yaml index 2111f9ba..c2750fc4 100644 --- a/release/tag/goreleaser.yaml +++ b/release/tag/goreleaser.yaml @@ -81,6 +81,9 @@ changelog: - "(?i)^regenerate docs" - Merge pull request - Merge branch + +project_name: porchctl + release: github: owner: nephio-project From d2ef620814c20f7bbad512ee0fd292214f0aac9d Mon Sep 17 00:00:00 2001 From: efiacor Date: Fri, 26 Jan 2024 16:54:07 +0000 Subject: [PATCH 4/4] Bump github action versions --- .github/workflows/release.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 6487f0fb..dd799862 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -26,16 +26,16 @@ jobs: hashes: ${{ steps.hash.outputs.hashes }} steps: - name: Set up Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: '>=1.21.5' - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Run GoReleaser id: run-goreleaser - uses: goreleaser/goreleaser-action@v4 + uses: goreleaser/goreleaser-action@v5 with: distribution: goreleaser version: latest