Refactor / Upgrade alpine version of docker builder #1233
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
pull_request: | |
branches: | |
- "**" | |
push: | |
branches: | |
- "master" | |
workflow_dispatch: | |
jobs: | |
install-tparse: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: 1.23 | |
- name: Display go version | |
run: go version | |
- name: install tparse | |
run: | | |
export GO111MODULE="on" && go install github.com/mfridman/tparse@v0.13.1 | |
- uses: actions/cache@v2.1.6 | |
with: | |
path: ~/go/bin | |
key: ${{ runner.os }}-go-tparse-binary | |
build: | |
name: sged-${{ matrix.targetos }}-${{ matrix.arch }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
arch: [amd64, arm64] | |
targetos: [darwin, linux] | |
include: | |
- targetos: darwin | |
arch: arm64 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: 1.23 | |
- uses: technote-space/get-diff-action@v4 | |
id: git_diff | |
with: | |
PATTERNS: | | |
**/**.wasm | |
!tests/** | |
**/**.go !**/*_test.go | |
go.mod | |
go.sum | |
Makefile | |
.github/workflows/build.yml | |
- name: 🐿 Setup Golang | |
uses: actions/setup-go@v5 | |
if: env.GIT_DIFF | |
with: | |
go-version-file: go.mod | |
env: | |
GOOS: ${{ matrix.targetos }} | |
GOARCH: ${{ matrix.arch }} | |
- name: Download Dependencies | |
if: env.GIT_DIFF | |
run: go mod download | |
- name: Build sged | |
if: env.GIT_DIFF | |
run: | | |
GOWRK=off go build cmd/sged/main.go | |
- name: Upload sged artifact | |
if: env.GIT_DIFF | |
uses: actions/upload-artifact@v3 | |
with: | |
name: sged-${{ matrix.targetos }}-${{ matrix.arch }} | |
path: cmd/sged/sged | |
split-test-files: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: 1.23 | |
- uses: actions/checkout@v4 | |
- name: Create a file with all the pkgs | |
run: go list ./... | grep -E -v 'tests/e2e' > pkgs.txt | |
- name: Split pkgs into 4 files | |
run: split -d -n l/4 pkgs.txt pkgs.txt.part. | |
# cache multiple | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: "${{ github.sha }}-00" | |
path: ./pkgs.txt.part.00 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: "${{ github.sha }}-01" | |
path: ./pkgs.txt.part.01 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: "${{ github.sha }}-02" | |
path: ./pkgs.txt.part.02 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: "${{ github.sha }}-03" | |
path: ./pkgs.txt.part.03 | |
tests: | |
runs-on: ubuntu-latest | |
needs: split-test-files | |
strategy: | |
fail-fast: false | |
matrix: | |
part: ["00", "01", "02", "03"] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: 1.23 | |
- uses: technote-space/get-diff-action@v4 | |
with: | |
PATTERNS: | | |
**/**.go | |
go.mod | |
go.sum | |
- uses: actions/download-artifact@v4 | |
with: | |
name: "${{ github.sha }}-${{ matrix.part }}" | |
if: env.GIT_DIFF | |
- name: test & coverage report creation | |
run: | | |
cat pkgs.txt.part.${{ matrix.part }} | xargs go test -mod=readonly -timeout 30m -coverprofile=${{ matrix.part }}profile.out -covermode=atomic -tags='norace ledger test_ledger_mock' | |
if: env.GIT_DIFF | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: "${{ github.sha }}-${{ matrix.part }}-coverage" | |
path: ./${{ matrix.part }}profile.out | |
upload-coverage-report: | |
runs-on: ubuntu-latest | |
needs: tests | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: technote-space/get-diff-action@v4 | |
with: | |
PATTERNS: | | |
**/**.go | |
go.mod | |
go.sum | |
- uses: actions/download-artifact@v4 | |
with: | |
name: "${{ github.sha }}-00-coverage" | |
if: env.GIT_DIFF | |
- uses: actions/download-artifact@v4 | |
with: | |
name: "${{ github.sha }}-01-coverage" | |
if: env.GIT_DIFF | |
- uses: actions/download-artifact@v4 | |
with: | |
name: "${{ github.sha }}-02-coverage" | |
if: env.GIT_DIFF | |
- uses: actions/download-artifact@v4 | |
with: | |
name: "${{ github.sha }}-03-coverage" | |
if: env.GIT_DIFF | |
- run: | | |
cat ./*profile.out | grep -v "mode: atomic" >> coverage.txt | |
if: env.GIT_DIFF | |
- name: filter out DONTCOVER | |
run: | | |
excludelist="$(find ./ -type f -name '*.go' | xargs grep -l 'DONTCOVER')" | |
excludelist+=" $(find ./ -type f -name '*.pb.go')" | |
excludelist+=" $(find ./ -type f -name '*.pb.gw.go')" | |
excludelist+=" $(find ./ -type f -path './tests/mocks/*.go')" | |
for filename in ${excludelist}; do | |
filename=$(echo $filename | sed 's/^./github.com\/cosmos\/cosmos-sdk/g') | |
echo "Excluding ${filename} from coverage report..." | |
sed -i.bak "/$(echo $filename | sed 's/\//\\\//g')/d" coverage.txt | |
done | |
if: env.GIT_DIFF | |
- uses: codecov/codecov-action@v1.5.2 | |
with: | |
file: ./coverage.txt | |
if: env.GIT_DIFF | |
test-race: | |
runs-on: ubuntu-latest | |
needs: split-test-files | |
strategy: | |
fail-fast: false | |
matrix: | |
part: ["00", "01", "02", "03"] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: 1.23 | |
- uses: technote-space/get-diff-action@v4 | |
with: | |
PATTERNS: | | |
**/**.go | |
go.mod | |
go.sum | |
- uses: actions/download-artifact@v4 | |
with: | |
name: "${{ github.sha }}-${{ matrix.part }}" | |
if: env.GIT_DIFF | |
- name: test & coverage report creation | |
run: | | |
xargs --arg-file=pkgs.txt.part.${{ matrix.part }} go test -mod=readonly -timeout 30m -race -tags='cgo ledger test_ledger_mock' | |
if: env.GIT_DIFF | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: "${{ github.sha }}-${{ matrix.part }}-race-output" | |
path: ./${{ matrix.part }}-race-output.txt |