From 3da38854d5f8dbd41dba2646a2526483b0330b77 Mon Sep 17 00:00:00 2001 From: Carson Long <12767276+ctlong@users.noreply.github.com> Date: Thu, 11 Apr 2024 15:13:37 -0700 Subject: [PATCH] feat: Add scripts for testing and linting (#559) * Add scripts for testing and linting * Use test scripts in GH actions (cherry picked from commit 2cd4fef86ccdf20d0a582404ef78bcb677d9173f) Co-authored-by: Rebecca Roberts --- .github/workflows/go.yml | 44 ----------------------------------- .github/workflows/scripts.yml | 30 ++++++++++++++++++++++++ scripts/subtests/lint | 18 ++++++++++++++ scripts/subtests/unit-test | 11 +++++++++ scripts/test | 10 ++++++++ 5 files changed, 69 insertions(+), 44 deletions(-) delete mode 100644 .github/workflows/go.yml create mode 100644 .github/workflows/scripts.yml create mode 100755 scripts/subtests/lint create mode 100755 scripts/subtests/unit-test create mode 100755 scripts/test diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml deleted file mode 100644 index ff96ad5a9..000000000 --- a/.github/workflows/go.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Go - -on: - push: - branches: - - main - - v[0-9]* - pull_request: - branches: - - main - - v[0-9]* - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: "src/go.mod" - - run: go run github.com/onsi/ginkgo/v2/ginkgo -r --race --randomize-all --randomize-suites --keep-going - working-directory: src - - vet: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: "src/go.mod" - - run: go vet ./... - working-directory: src - - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: "src/go.mod" - - uses: golangci/golangci-lint-action@v3.7.0 - with: - args: --config .golangci.yml --timeout 5m - working-directory: src diff --git a/.github/workflows/scripts.yml b/.github/workflows/scripts.yml new file mode 100644 index 000000000..c96560119 --- /dev/null +++ b/.github/workflows/scripts.yml @@ -0,0 +1,30 @@ +name: scripts + +on: + push: + branches: + - main + - v[0-9]* + pull_request: + branches: + - main + - v[0-9]* + +jobs: + unit-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version-file: "src/go.mod" + - run: ./scripts/subtests/unit-test + + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version-file: "src/go.mod" + - run: ./scripts/subtests/lint diff --git a/scripts/subtests/lint b/scripts/subtests/lint new file mode 100755 index 000000000..bb8f5c95b --- /dev/null +++ b/scripts/subtests/lint @@ -0,0 +1,18 @@ +#!/bin/bash + +set -eux +set -o pipefail + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" + +set +e +golangci_lint_executable=$(which golangci-lint) +set -e +if [ -z "${golangci_lint_executable}" ] || [ ! -x "${golangci_lint_executable}" ]; then + go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest +fi + +pushd "${SCRIPT_DIR}/../../src" > /dev/null + golangci-lint run ./... +popd > /dev/null + diff --git a/scripts/subtests/unit-test b/scripts/subtests/unit-test new file mode 100755 index 000000000..1d50d7eea --- /dev/null +++ b/scripts/subtests/unit-test @@ -0,0 +1,11 @@ +#!/bin/bash + +set -eux +set -o pipefail + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" + +pushd "${SCRIPT_DIR}/../../src" > /dev/null + go run github.com/onsi/ginkgo/v2/ginkgo -r -p --randomize-all --randomize-suites --fail-on-pending --keep-going --race --trace +popd > /dev/null + diff --git a/scripts/test b/scripts/test new file mode 100755 index 000000000..382cecd0a --- /dev/null +++ b/scripts/test @@ -0,0 +1,10 @@ +#!/bin/bash + +set -eux +set -o pipefail + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" + +"${SCRIPT_DIR}/subtests/lint" +"${SCRIPT_DIR}/subtests/unit-test" +