Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: gha setup go cache issue [#1319] #1320

Merged
merged 3 commits into from
Jul 22, 2024
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
27 changes: 15 additions & 12 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ jobs:
matrix:
os: [ubuntu-latest, macOS-latest, macos-12]
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4

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

- name: Check out code into the Go module directory
uses: actions/checkout@v4
go-version-file: "go.mod"

- name: Test
run: |
Expand All @@ -41,13 +41,13 @@ jobs:
name: lint
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4

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

- name: Check out code into the Go module directory
uses: actions/checkout@v4
go-version-file: "go.mod"

- name: golangci-lint
uses: golangci/golangci-lint-action@v6
Expand All @@ -63,14 +63,17 @@ jobs:
needs: [build]
steps:
- uses: actions/checkout@v4

- uses: actions/download-artifact@v4
with:
name: ubuntu-latest_reports
path: reports

- uses: actions/download-artifact@v4
with:
name: macOS-latest_reports
path: reports

- uses: actions/download-artifact@v4
with:
name: macos-12_reports
Expand All @@ -92,13 +95,13 @@ jobs:
- macos-latest
runs-on: ${{ matrix.os }}
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4

- name: Set up Go 1.x
uses: actions/setup-go@v5
with:
go-version: 1.20.x

- name: Check out code into the Go module directory
uses: actions/checkout@v4
go-version-file: "go.mod"

- name: Install dependency required for linux builds
if: matrix.os == 'ubuntu-20.04'
Expand Down
162 changes: 83 additions & 79 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ name: release
on:
push:
tags:
- '*'
- "*"
workflow_dispatch:
inputs:
tag:
description: The tag to run against. This trigger only runs the MSI builder.
description: The tag to run against. This trigger runs the GoReleaser and MSI builder.
required: true

jobs:
Expand All @@ -19,98 +19,102 @@ jobs:
max-parallel: 1
matrix:
os:
- ubuntu-latest
- ubuntu-20.04
- macos-latest
- ubuntu-latest
- ubuntu-20.04
- macos-latest
runs-on: ${{ matrix.os }}
if: github.event_name != 'workflow_dispatch'
permissions: write-all
steps:

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

- name: Check out code into the Go module directory
uses: actions/checkout@v4

- name: Install dependency required for linux builds
if: matrix.os == 'ubuntu-20.04'
run: sudo apt-get update && sudo apt-get install -y libudev-dev

- name: Add Lowercase Repository Name to Environment
run: |
echo REPOSITORY_NAME_LOWERCASE=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV

- uses: "docker/login-action@v3"
if: matrix.os == 'ubuntu-20.04'
with:
registry: "ghcr.io"
username: "${{ github.actor }}"
password: "${{ secrets.GITHUB_TOKEN }}"
- name: GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release --clean --config .goreleaser.${{ matrix.os }}.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
IMAGE_NAME: ${{ env.REPOSITORY_NAME_LOWERCASE }}
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Go 1.x
uses: actions/setup-go@v5
with:
go-version-file: "go.mod"

- name: Install dependency required for linux builds
if: matrix.os == 'ubuntu-20.04'
run: sudo apt-get update && sudo apt-get install -y libudev-dev

- name: Add Lowercase Repository Name to Environment
run: |
echo REPOSITORY_NAME_LOWERCASE=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV

- uses: "docker/login-action@v3"
if: matrix.os == 'ubuntu-20.04'
with:
registry: "ghcr.io"
username: "${{ github.actor }}"
password: "${{ secrets.GITHUB_TOKEN }}"

- name: GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release --clean --config .goreleaser.${{ matrix.os }}.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
IMAGE_NAME: ${{ env.REPOSITORY_NAME_LOWERCASE }}

windows-msi:
name: Build Windows MSI and upload to release
runs-on: ubuntu-latest
permissions:
contents: write
needs: [release]
if: >- # https://github.com/actions/runner/issues/491
if: >- # https://github.com/actions/runner/issues/491
always() &&
(needs.release.result == 'success' || needs.release.result == 'skipped')
env:
INSTALLER: ${{ github.workspace }}/.github/win-msi
BIN: ${{ github.workspace }}/.github/win-msi/src/bin
WIXIMG: dactiv/wix@sha256:17d232708589641f5632f9a1ff9463ad087b192cea7b8e6012d2b47ec6af5f6c
steps:
- name: Normalize tag values
run: |
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]] ; then
VER=${{ github.event.inputs.tag }}
else
VER=${GITHUB_REF/refs\/tags\//}
fi

VERSION=${VER//v}

echo "VER_TAG=$VER" >> $GITHUB_ENV
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "ASSET=saml2aws_${VERSION}_windows_amd64.zip" >> $GITHUB_ENV

- name: Check out code
uses: actions/checkout@v4

- name: Retrieve the release asset
id: asset
uses: robinraju/release-downloader@a96f54c1b5f5e09e47d9504526e96febd949d4c2 # v1.11
with:
repository: ${{ github.repository }}
tag: ${{ env.VER_TAG }}
fileName: ${{ env.ASSET }}
out-file-path: ${{ env.BIN }}

- name: Unzip asset
working-directory: ${{ env.BIN }}
run: unzip "${ASSET}"

- name: Build MSI
run: |
# container does not run as root
chmod -R o+rw "${INSTALLER}"

cat "${INSTALLER}/wix.sh" | docker run --rm -i -e VERSION -v "${INSTALLER}:/wix" ${WIXIMG} /bin/sh

- name: Upload the asset to the release
uses: softprops/action-gh-release@a74c6b72af54cfa997e81df42d94703d6313a2d0 # v0.2.0.6.2.0.65 / v2.0.6
with:
tag_name: ${{ env.VER_TAG }}
files: ${{ env.INSTALLER }}/out/*.msi
- name: Normalize tag values
run: |
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]] ; then
VER=${{ github.event.inputs.tag }}
else
VER=${GITHUB_REF/refs\/tags\//}
fi

VERSION=${VER//v}

echo "VER_TAG=$VER" >> $GITHUB_ENV
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "ASSET=saml2aws_${VERSION}_windows_amd64.zip" >> $GITHUB_ENV

- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Retrieve the release asset
id: asset
uses: robinraju/release-downloader@a96f54c1b5f5e09e47d9504526e96febd949d4c2 # v1.11
with:
repository: ${{ github.repository }}
tag: ${{ env.VER_TAG }}
fileName: ${{ env.ASSET }}
out-file-path: ${{ env.BIN }}

- name: Unzip asset
working-directory: ${{ env.BIN }}
run: unzip "${ASSET}"

- name: Build MSI
run: |
# container does not run as root
chmod -R o+rw "${INSTALLER}"

cat "${INSTALLER}/wix.sh" | docker run --rm -i -e VERSION -v "${INSTALLER}:/wix" ${WIXIMG} /bin/sh

- name: Upload the asset to the release
uses: softprops/action-gh-release@a74c6b72af54cfa997e81df42d94703d6313a2d0 # v0.2.0.6.2.0.65 / v2.0.6
with:
tag_name: ${{ env.VER_TAG }}
files: ${{ env.INSTALLER }}/out/*.msi
Loading