Skip to content

Instantly share code, notes, and snippets.

@jnbdz
Created January 20, 2025 14:44
Show Gist options
  • Save jnbdz/b1c6fb341a33258dda236df857119831 to your computer and use it in GitHub Desktop.
Save jnbdz/b1c6fb341a33258dda236df857119831 to your computer and use it in GitHub Desktop.
---
name: Pre-Build Workflow
on:
push:
branches:
- master
- develop
jobs:
tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-22.04
- ubuntu-24.04
- windows-2019
- windows-2022
- windows-2025
- macos-13
- macos-14
- macos-15
steps:
- uses: actions/checkout@v4
# Directory Listing and Cleanup for Linux/Mac
- name: Directory Listing and Cleanup (Linux/Mac)
if: runner.os != 'Windows'
run: |
ls -la ~/go/pkg/mod || echo "Directory does not exist"
chmod -R 0755 ~/go/pkg/mod ~/.cache/go-build ~/.cache/golangci-lint ~/.cache/buf || true
rm -rf ~/.cache/go-build ~/go/pkg/mod || true
shell: bash
# Directory Listing and Cleanup for Windows
- name: Directory Listing and Cleanup (Windows)
if: runner.os == 'Windows'
run: |
if (Test-Path -Path "$env:USERPROFILE\go\pkg\mod") {
Get-ChildItem -Force -Recurse "$env:USERPROFILE\go\pkg\mod"
} else {
Write-Output "Directory does not exist"
}
if (Test-Path -Path "$env:USERPROFILE\.cache\go-build") {
Remove-Item -Recurse -Force "$env:USERPROFILE\.cache\go-build"
}
if (Test-Path -Path "$env:USERPROFILE\go\pkg\mod") {
Remove-Item -Recurse -Force "$env:USERPROFILE\go\pkg\mod"
}
shell: pwsh
# Cache Go modules to speed up builds
- name: Cache Go Modules
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: go-mod-${{ matrix.os }}-${{ hashFiles('**/go.sum') }}
restore-keys: |
go-mod-${{ matrix.os }}-
go-mod-
# Run tests
- uses: ./.github/actions/test
# Lint the code
- uses: ./.github/actions/lint
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment