Skip to content

Go

Go #19175

Workflow file for this run

---
name: Go
on:
workflow_dispatch: null
push:
branches:
- main
pull_request:
branches:
- main
schedule:
# Run full test once a day
- cron: "0 0 * * *"
permissions: {}
jobs:
build:
name: Build
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: free disk space
run: |
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
sudo docker image prune --all --force
sudo docker builder prune -a
df -h
# https://github.com/actions/setup-go
- name: Set up Go
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
with:
cache: false
go-version: 1.25.5
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
fetch-depth: 0
- name: golangci-lint
uses: golangci/golangci-lint-action@e7fa5ac41e1cf5b7d48e45e42232ce7ada589601 # v9.1.0
with:
# Required: the version of golangci-lint is required
# and must be specified without patch version:
# we always use the latest patch version.
version: v2.7.2
install-mode: "binary"
- uses: "pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061" # v4.2.2
with:
version: "10.25.0"
run_install: false
- name: Install Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version: "25.2.1"
- name: Install GoReleaser
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
with:
install-only: true
- name: Show GoReleaser version
run: goreleaser --version
- name: Build
run: make build
- name: Quick Test
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: make test-short
if: ${{ github.event_name == 'pull_request' }}
- name: All Test
env:
# Access only to ec2 AMI api in read-only
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
UPDATECLI_GITEA_TOKEN: ${{ secrets.UPDATECLI_GITEA_TOKEN }}
run: make test
if: ${{ github.event_name == 'schedule' }}
# Codecov should only be updated if make test is executed
- name: Upload coverage to Codecov
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
if: ${{ github.event_name == 'schedule' }}
with:
fail_ci_if_error: false
env:
CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}"
# Manage and run your integration tests with efficiency
# https://github.com/ovh/venom
- name: Install Venom
run: |
curl -o /usr/local/bin/venom https://github.com/ovh/venom/releases/download/$VENOM_VERSION/venom.linux-amd64 -L
sudo chmod +x /usr/local/bin/venom
ls -lha /usr/local/bin/venom
env:
VENOM_VERSION: v1.2.0
- name: Show Venom version
run: venom version
- name: Run End to End tests
run: make test-e2e
env:
IS_TTY: true # https://github.com/ovh/venom#use-venom-in-ci
# Access only to ec2 AMI api in read-only
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}