From 6bd5c128678f5fe94d01723be85e44fd39a9f953 Mon Sep 17 00:00:00 2001 From: Webb Scales Date: Mon, 9 Sep 2024 17:09:51 -0400 Subject: [PATCH] Replace build and test with reusable workflows --- .github/scripts/gogenerate.sh | 27 ------------ .github/workflows/build.yaml | 19 +++++++++ .github/workflows/build.yml | 79 ----------------------------------- .limgo.json | 7 ++++ 4 files changed, 26 insertions(+), 106 deletions(-) delete mode 100755 .github/scripts/gogenerate.sh create mode 100644 .github/workflows/build.yaml delete mode 100644 .github/workflows/build.yml create mode 100644 .limgo.json diff --git a/.github/scripts/gogenerate.sh b/.github/scripts/gogenerate.sh deleted file mode 100755 index 3bd55c6..0000000 --- a/.github/scripts/gogenerate.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -export NOLINT=1 -go generate >/tmp/gogenerate.output 2>/tmp/gogenerate.output -if [ $? -ne 0 ]; then - echo -e "::group::\e[0;31m❌ Go generate failed.\e[0m" - cat /tmp/gogenerate.output - echo "::endgroup::" - exit 1 -fi - -echo -e "::group::\e[0;32m✅ Go generate succeeded.\e[0m" -cat /tmp/gogenerate.output -echo "::endgroup::" - -git diff >/tmp/gogenerate.diff -if [ "$(cat /tmp/gogenerate.diff | wc -l)" -ne 0 ]; then - echo -e "::group::\e[0;31m❌ Git changes after go generate.\e[0m" - echo "The following is the diff of files:" - cat /tmp/gogenerate.diff - echo "::endgroup::" - echo -e "\e[0;31m⚙ Please run go generate before pushing your changes.\e[0m" - exit 1 -fi - -echo -e "::group::\e[0;32m✅ No changes after go generate.\e[0m" -echo "::endgroup::" diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..1330a02 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,19 @@ +name: Build +on: + push: + branches: + - main + tags: + - v* + pull_request: +jobs: + lint_and_test: + name: lint and test + uses: arcalot/arcaflow-reusable-workflows/.github/workflows/go_lint_and_test.yaml@main + with: + go_version: ${{ vars.ARCALOT_GO_VERSION }} + generate: + name: go generate + uses: arcalot/arcaflow-reusable-workflows/.github/workflows/go_generate.yaml@main + with: + go_version: ${{ vars.ARCALOT_GO_VERSION }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index d902f79..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Build -on: - push: - branches: - - main - pull_request: -jobs: - golangci-lint: - name: golangci-lint - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Run golangci-lint - uses: golangci/golangci-lint-action@v6 - with: - version: v1.55.2 - test: - name: go test - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: 1.21.6 - - name: Set up gotestfmt - uses: gotesttools/gotestfmt-action@v2 - - uses: actions/cache@v4 - with: - path: | - ~/go/pkg/mod - ~/.cache/go-build - key: go-test-${{ hashFiles('**/go.sum') }} - restore-keys: go-test- - - name: Run go test - run: | - set -euo pipefail - go generate - go test -coverprofile /tmp/coverage.out -json -v ./... 2>&1 | tee /tmp/gotest.log | gotestfmt - echo "# Code coverage summary" > /tmp/coverage.md - echo "|File|Type|Coverage|" >> /tmp/coverage.md - echo "|----|----|--------|" >> /tmp/coverage.md - go tool cover -func /tmp/coverage.out | sed -e 's/\s\s*/|/g' -e 's/^/|/g' -e 's/$/|/g' >> /tmp/coverage.md - - cat /tmp/coverage.md >> $GITHUB_STEP_SUMMARY - echo "::group::Code coverage summary" - go tool cover -func /tmp/coverage.out - echo "::endgroup::" - - name: Upload test log - uses: actions/upload-artifact@v4 - if: always() - with: - name: test-results - path: | - /tmp/gotest.log - /tmp/coverage.out - /tmp/coverage.md - if-no-files-found: error - generate: - name: go generate - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: 1.21.6 - - uses: actions/cache@v4 - with: - path: | - ~/go/pkg/mod - ~/.cache/go-build - key: go-test-${{ hashFiles('**/go.sum') }} - restore-keys: go-generate- - - name: Run go generate - run: ./.github/scripts/gogenerate.sh diff --git a/.limgo.json b/.limgo.json new file mode 100644 index 0000000..3064910 --- /dev/null +++ b/.limgo.json @@ -0,0 +1,7 @@ +{ + "statistic": { + "excludes": [ + "mocks/.*" + ] + } +}