From c9d3be57adb9b520e19859c57cf1c68fba55ac5e Mon Sep 17 00:00:00 2001 From: Achille Roussel Date: Tue, 21 Sep 2021 12:29:56 -0700 Subject: [PATCH 1/7] add version to build artifacts --- .github/workflows/release.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 536a12b..def4bbe 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -32,31 +32,31 @@ jobs: run: go mod download - name: Build Linux AMD64 - run: GOOS=linux GOARCH=amd64 go build -o kubectl-curl_linux_amd64 + run: GOOS=linux GOARCH=amd64 go build -o kubectl-curl_{{ github.ref }}_linux_amd64 - name: Build Linux ARM64 - run: GOOS=linux GOARCH=arm64 go build -o kubectl-curl_linux_arm64 + run: GOOS=linux GOARCH=arm64 go build -o kubectl-curl_{{ github.ref }}_linux_arm64 - name: Build Darwin AMD64 - run: GOOS=darwin GOARCH=amd64 go build -o kubectl-curl_darwin_amd64 + run: GOOS=darwin GOARCH=amd64 go build -o kubectl-curl_{{ github.ref }}_darwin_amd64 - name: Build Darwin ARM64 - run: GOOS=darwin GOARCH=arm64 go build -o kubectl-curl_darwin_arm64 + run: GOOS=darwin GOARCH=arm64 go build -o kubectl-curl_{{ github.ref }}_darwin_arm64 - name: Build Windows AMD64 - run: GOOS=windows GOARCH=amd64 go build -o kubectl-curl_windows_amd64.exe + run: GOOS=windows GOARCH=amd64 go build -o kubectl-curl_{{ github.ref }}_windows_amd64.exe - name: Build Windows ARM64 - run: GOOS=windows GOARCH=arm64 go build -o kubectl-curl_windows_arm64.exe + run: GOOS=windows GOARCH=arm64 go build -o kubectl-curl_{{ github.ref }}_windows_arm64.exe - name: Release uses: softprops/action-gh-release@v1 with: files: | LICENSE - kubectl-curl_linux_amd64 - kubectl-curl_linux_arm64 - kubectl-curl_darwin_amd64 - kubectl-curl_darwin_arm64 - kubectl-curl_windows_amd64.exe - kubectl-curl_windows_arm64.exe + kubectl-curl_{{ github.ref }}_linux_amd64 + kubectl-curl_{{ github.ref }}_linux_arm64 + kubectl-curl_{{ github.ref }}_darwin_amd64 + kubectl-curl_{{ github.ref }}_darwin_arm64 + kubectl-curl_{{ github.ref }}_windows_amd64.exe + kubectl-curl_{{ github.ref }}_windows_arm64.exe From 81e10daa2b5937ae666dc2eb37f50c1af64ab1ec Mon Sep 17 00:00:00 2001 From: Achille Roussel Date: Tue, 21 Sep 2021 12:32:11 -0700 Subject: [PATCH 2/7] fix interpolation syntax --- .github/workflows/release.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index def4bbe..8df9ffe 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -32,31 +32,31 @@ jobs: run: go mod download - name: Build Linux AMD64 - run: GOOS=linux GOARCH=amd64 go build -o kubectl-curl_{{ github.ref }}_linux_amd64 + run: GOOS=linux GOARCH=amd64 go build -o kubectl-curl_${{ github.ref }}_linux_amd64 - name: Build Linux ARM64 - run: GOOS=linux GOARCH=arm64 go build -o kubectl-curl_{{ github.ref }}_linux_arm64 + run: GOOS=linux GOARCH=arm64 go build -o kubectl-curl_${{ github.ref }}_linux_arm64 - name: Build Darwin AMD64 - run: GOOS=darwin GOARCH=amd64 go build -o kubectl-curl_{{ github.ref }}_darwin_amd64 + run: GOOS=darwin GOARCH=amd64 go build -o kubectl-curl_${{ github.ref }}_darwin_amd64 - name: Build Darwin ARM64 - run: GOOS=darwin GOARCH=arm64 go build -o kubectl-curl_{{ github.ref }}_darwin_arm64 + run: GOOS=darwin GOARCH=arm64 go build -o kubectl-curl_${{ github.ref }}_darwin_arm64 - name: Build Windows AMD64 - run: GOOS=windows GOARCH=amd64 go build -o kubectl-curl_{{ github.ref }}_windows_amd64.exe + run: GOOS=windows GOARCH=amd64 go build -o kubectl-curl_${{ github.ref }}_windows_amd64.exe - name: Build Windows ARM64 - run: GOOS=windows GOARCH=arm64 go build -o kubectl-curl_{{ github.ref }}_windows_arm64.exe + run: GOOS=windows GOARCH=arm64 go build -o kubectl-curl_${{ github.ref }}_windows_arm64.exe - name: Release uses: softprops/action-gh-release@v1 with: files: | LICENSE - kubectl-curl_{{ github.ref }}_linux_amd64 - kubectl-curl_{{ github.ref }}_linux_arm64 - kubectl-curl_{{ github.ref }}_darwin_amd64 - kubectl-curl_{{ github.ref }}_darwin_arm64 - kubectl-curl_{{ github.ref }}_windows_amd64.exe - kubectl-curl_{{ github.ref }}_windows_arm64.exe + kubectl-curl_${{ github.ref }}_linux_amd64 + kubectl-curl_${{ github.ref }}_linux_arm64 + kubectl-curl_${{ github.ref }}_darwin_amd64 + kubectl-curl_${{ github.ref }}_darwin_arm64 + kubectl-curl_${{ github.ref }}_windows_amd64.exe + kubectl-curl_${{ github.ref }}_windows_arm64.exe From 3f64e467a0c3978168d441eeeb70352e5857ac19 Mon Sep 17 00:00:00 2001 From: Achille Roussel Date: Tue, 21 Sep 2021 12:38:00 -0700 Subject: [PATCH 3/7] extract tag --- .github/workflows/release.yaml | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 8df9ffe..2d596a2 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -9,6 +9,10 @@ jobs: build: runs-on: ubuntu-latest steps: + - name: Version + id: version + run: echo ::set-output name=tag::${GITHUB_REF/refs\/tags\//} + - name: Checkout uses: actions/checkout@v2 @@ -32,31 +36,31 @@ jobs: run: go mod download - name: Build Linux AMD64 - run: GOOS=linux GOARCH=amd64 go build -o kubectl-curl_${{ github.ref }}_linux_amd64 + run: GOOS=linux GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_linux_amd64 - name: Build Linux ARM64 - run: GOOS=linux GOARCH=arm64 go build -o kubectl-curl_${{ github.ref }}_linux_arm64 + run: GOOS=linux GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_linux_arm64 - name: Build Darwin AMD64 - run: GOOS=darwin GOARCH=amd64 go build -o kubectl-curl_${{ github.ref }}_darwin_amd64 + run: GOOS=darwin GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_darwin_amd64 - name: Build Darwin ARM64 - run: GOOS=darwin GOARCH=arm64 go build -o kubectl-curl_${{ github.ref }}_darwin_arm64 + run: GOOS=darwin GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_darwin_arm64 - name: Build Windows AMD64 - run: GOOS=windows GOARCH=amd64 go build -o kubectl-curl_${{ github.ref }}_windows_amd64.exe + run: GOOS=windows GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_windows_amd64.exe - name: Build Windows ARM64 - run: GOOS=windows GOARCH=arm64 go build -o kubectl-curl_${{ github.ref }}_windows_arm64.exe + run: GOOS=windows GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_windows_arm64.exe - name: Release uses: softprops/action-gh-release@v1 with: files: | LICENSE - kubectl-curl_${{ github.ref }}_linux_amd64 - kubectl-curl_${{ github.ref }}_linux_arm64 - kubectl-curl_${{ github.ref }}_darwin_amd64 - kubectl-curl_${{ github.ref }}_darwin_arm64 - kubectl-curl_${{ github.ref }}_windows_amd64.exe - kubectl-curl_${{ github.ref }}_windows_arm64.exe + kubectl-curl_${{ steps.version.outputs.tag }}_linux_amd64 + kubectl-curl_${{ steps.version.outputs.tag }}_linux_arm64 + kubectl-curl_${{ steps.version.outputs.tag }}_darwin_amd64 + kubectl-curl_${{ steps.version.outputs.tag }}_darwin_arm64 + kubectl-curl_${{ steps.version.outputs.tag }}_windows_amd64.exe + kubectl-curl_${{ steps.version.outputs.tag }}_windows_arm64.exe From ab957f7ea4427d81abd959fd02e841b2b8c611b5 Mon Sep 17 00:00:00 2001 From: Achille Roussel Date: Tue, 21 Sep 2021 12:45:22 -0700 Subject: [PATCH 4/7] make archives --- .github/workflows/release.yaml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 2d596a2..ff4e27c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -21,7 +21,7 @@ jobs: with: go-version: 1.17.1 - - name: Cache Dependencies + - name: Cache Go uses: actions/cache@v2 with: path: | @@ -53,14 +53,17 @@ jobs: - name: Build Windows ARM64 run: GOOS=windows GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_windows_arm64.exe + - name: Generate Artifacts + run: for bin in kubectl-curl_*; do tar czf $bin.tar.gz $bin LICENSE; done + - name: Release uses: softprops/action-gh-release@v1 with: files: | LICENSE - kubectl-curl_${{ steps.version.outputs.tag }}_linux_amd64 - kubectl-curl_${{ steps.version.outputs.tag }}_linux_arm64 - kubectl-curl_${{ steps.version.outputs.tag }}_darwin_amd64 - kubectl-curl_${{ steps.version.outputs.tag }}_darwin_arm64 - kubectl-curl_${{ steps.version.outputs.tag }}_windows_amd64.exe - kubectl-curl_${{ steps.version.outputs.tag }}_windows_arm64.exe + kubectl-curl_${{ steps.version.outputs.tag }}_linux_amd64.tar.gz + kubectl-curl_${{ steps.version.outputs.tag }}_linux_arm64.tar.gz + kubectl-curl_${{ steps.version.outputs.tag }}_darwin_amd64.tar.gz + kubectl-curl_${{ steps.version.outputs.tag }}_darwin_arm64.tar.gz + kubectl-curl_${{ steps.version.outputs.tag }}_windows_amd64.exe.tar.gz + kubectl-curl_${{ steps.version.outputs.tag }}_windows_arm64.exe.tar.gz From a8ef22dbd08ad28a5f10153348e501cf9d3e74b3 Mon Sep 17 00:00:00 2001 From: Achille Roussel Date: Tue, 21 Sep 2021 12:46:31 -0700 Subject: [PATCH 5/7] quick test --- .github/workflows/release.yaml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index ff4e27c..4208c28 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -38,20 +38,20 @@ jobs: - name: Build Linux AMD64 run: GOOS=linux GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_linux_amd64 - - name: Build Linux ARM64 - run: GOOS=linux GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_linux_arm64 + #- name: Build Linux ARM64 + # run: GOOS=linux GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_linux_arm64 - - name: Build Darwin AMD64 - run: GOOS=darwin GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_darwin_amd64 + #- name: Build Darwin AMD64 + # run: GOOS=darwin GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_darwin_amd64 - - name: Build Darwin ARM64 - run: GOOS=darwin GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_darwin_arm64 + #- name: Build Darwin ARM64 + # run: GOOS=darwin GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_darwin_arm64 - - name: Build Windows AMD64 - run: GOOS=windows GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_windows_amd64.exe + #- name: Build Windows AMD64 + # run: GOOS=windows GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_windows_amd64.exe - - name: Build Windows ARM64 - run: GOOS=windows GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_windows_arm64.exe + #- name: Build Windows ARM64 + # run: GOOS=windows GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_windows_arm64.exe - name: Generate Artifacts run: for bin in kubectl-curl_*; do tar czf $bin.tar.gz $bin LICENSE; done From 41decc9ed28060c0c0c86f18f43c969f835770f2 Mon Sep 17 00:00:00 2001 From: Achille Roussel Date: Tue, 21 Sep 2021 13:27:27 -0700 Subject: [PATCH 6/7] use build matrix --- .github/workflows/release.yaml | 61 +++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 4208c28..00a391d 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -8,6 +8,21 @@ on: jobs: build: runs-on: ubuntu-latest + + env: + GOOS: ${{ matrix.os }} + GOARCH: ${{ matrix.arch }} + + strategy: + matrix: + os: + - linux + - darwin + - windows + arch: + - amd64 + - arm64 + steps: - name: Version id: version @@ -35,35 +50,27 @@ jobs: if: steps.cache-deps.outputs.cache-hit != 'true' run: go mod download - - name: Build Linux AMD64 - run: GOOS=linux GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_linux_amd64 - - #- name: Build Linux ARM64 - # run: GOOS=linux GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_linux_arm64 - - #- name: Build Darwin AMD64 - # run: GOOS=darwin GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_darwin_amd64 - - #- name: Build Darwin ARM64 - # run: GOOS=darwin GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_darwin_arm64 + - name: Build Artifacts + run: | + out=kubectl-curl_${{ steps.version.outputs.tag }}_${{ env.GOOS }}_${{ env.GOARCH }} + go build -o $out + tar czf $out.tar.gz $out LICENSE - #- name: Build Windows AMD64 - # run: GOOS=windows GOARCH=amd64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_windows_amd64.exe - - #- name: Build Windows ARM64 - # run: GOOS=windows GOARCH=arm64 go build -o kubectl-curl_${{ steps.version.outputs.tag }}_windows_arm64.exe + - name: Upload Artifacts + uses: actions/upload-artifact@v2 + with: + name: kubectl-curl_${{ steps.version.outputs.tag }}_${{ env.GOOS }}_${{ env.GOARCH }} + path: kubectl-curl_${{ steps.version.outputs.tag }}_${{ env.GOOS }}_${{ env.GOARCH }}.tar.gz - - name: Generate Artifacts - run: for bin in kubectl-curl_*; do tar czf $bin.tar.gz $bin LICENSE; done + release: + runs-on: ubuntu-latest + needs: [build] + steps: + - name: Download Artifacts + with: + path: . - - name: Release + - name: Release Artifacts uses: softprops/action-gh-release@v1 with: - files: | - LICENSE - kubectl-curl_${{ steps.version.outputs.tag }}_linux_amd64.tar.gz - kubectl-curl_${{ steps.version.outputs.tag }}_linux_arm64.tar.gz - kubectl-curl_${{ steps.version.outputs.tag }}_darwin_amd64.tar.gz - kubectl-curl_${{ steps.version.outputs.tag }}_darwin_arm64.tar.gz - kubectl-curl_${{ steps.version.outputs.tag }}_windows_amd64.exe.tar.gz - kubectl-curl_${{ steps.version.outputs.tag }}_windows_arm64.exe.tar.gz + files: kubectl-curl_*/* From 927d3942a603e83a7f1d80b04e77e2ed84991e21 Mon Sep 17 00:00:00 2001 From: Achille Roussel Date: Tue, 21 Sep 2021 13:28:52 -0700 Subject: [PATCH 7/7] fix missing 'uses' in action step --- .github/workflows/release.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 00a391d..f26efd4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -67,6 +67,7 @@ jobs: needs: [build] steps: - name: Download Artifacts + uses: actions/download-artifact@v2 with: path: .