Skip to content

ci: use workflow templates #7381

ci: use workflow templates

ci: use workflow templates #7381

Workflow file for this run

name: Test
on:
workflow_dispatch:
pull_request:
push:
branches:
- master
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Lint
uses: golangci/golangci-lint-action@v3
with:
args: --timeout=30m
- name: Jape Analyzer
uses: SiaFoundation/action-golang-analysis@HEAD
with:
analyzers: |
go.sia.tech/jape.Analyzer@master
directories: |
autopilot
bus bus/client
worker worker/client
flags: |
-japecheck.types=false
test:
needs: analyze
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
go-version: ["1.22", "1.23"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- uses: docker/login-action@v3 # helps with rate limit issues
if: matrix.os == 'ubuntu-latest' && github.actor != 'dependabot[bot]'
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Configure Windows
if: matrix.os == 'windows-latest'
run: git config --global core.autocrlf false # fixes go lint fmt error
- name: Configure MySQL
if: matrix.os == 'ubuntu-latest'
uses: mirromutth/[email protected]
with:
host port: 3800
mysql version: "8"
mysql root password: test
- name: Test Stores
uses: n8maninger/action-golang-test@v1
with:
args: "-race;-short;-tags=netgo"
- name: Test Stores - MySQL
if: matrix.os == 'ubuntu-latest'
uses: n8maninger/action-golang-test@v1
env:
RENTERD_DB_URI: 127.0.0.1:3800
RENTERD_DB_USER: root
RENTERD_DB_PASSWORD: test
with:
package: "./stores"
args: "-race;-short;-tags=netgo"
- name: Test Integration
uses: n8maninger/action-golang-test@v1
with:
package: "./internal/test/e2e/..."
args: "-failfast;-race;-timeout=60m;-tags=netgo"
- name: Test Integration - MySQL
if: matrix.os == 'ubuntu-latest'
uses: n8maninger/action-golang-test@v1
env:
RENTERD_DB_URI: 127.0.0.1:3800
RENTERD_DB_USER: root
RENTERD_DB_PASSWORD: test
with:
package: "./internal/test/e2e/..."
args: "-failfast;-race;-timeout=60m;-tags=netgo"
- name: Build
run: go build -o bin/ -tags='netgo timetzdata' ./cmd/renterd