Skip to content

Flake

Flake #149

Workflow file for this run

name: Flake
on:
release:
types: [prereleased]
workflow_dispatch:
jobs:
test:
name: Flake Test (${{ matrix.flake.name }})
runs-on: ${{ matrix.flake.os }}-latest
strategy:
fail-fast: false
matrix:
flake:
- name: Ubuntu Base tests
os: ubuntu
count: 3
timeout: 45m
- name: macOS Base tests
os: macos
count: 3
timeout: 45m
env:
MISE_PROFILE: cicd
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Use mise to install dependencies
uses: jdx/mise-action@c1ecc8f748cd28cdeabf76dab3cccde4ce692fe4 # v4.0.0
with:
version: 2026.1.9
experimental: true
env:
# Adding token here to reduce the likelihood of hitting rate limit issues.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- id: go-cache-paths
run: |
echo "go-build=$(go env GOCACHE)" >> "$GITHUB_OUTPUT"
echo "go-mod=$(go env GOMODCACHE)" >> "$GITHUB_OUTPUT"
shell: bash
- name: Go Build Cache
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5
with:
path: |
${{ steps.go-cache-paths.outputs.go-build }}
${{ steps.go-cache-paths.outputs.go-mod }}
key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}-${{ matrix.flake.os }}-amd64
- name: Run Tests
id: run-tests
run: |
set -o pipefail
go test -v ./... -count=${COUNT} -timeout ${TIMEOUT} | tee >(go-junit-report -set-exit-code > result.xml)
shell: bash
env:
# Adding token here to reduce the likelihood of hitting rate limit issues.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COUNT: ${{ matrix.flake.count }}
TIMEOUT: ${{ matrix.flake.timeout }}
- name: Upload Report (${{ matrix.flake.name }})
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: test-report-${{ matrix.flake.name }}
path: result.xml
- name: Display Test Results (${{ matrix.flake.name }})
uses: mikepenz/action-junit-report@49b2ca06f62aa7ef83ae6769a2179271e160d8e4 # v6
if: always()
with:
report_paths: result.xml
detailed_summary: 'true'
include_time_in_summary: 'true'
group_suite: 'true'