diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 41b9b0ceb2e..9cdc031c6b9 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,7 +14,7 @@ env: jobs: go: timeout-minutes: 5 - name: "go | ${{ matrix.goos }} | ${{ matrix.canary }}" + name: "${{ matrix.goos }} | ${{ matrix.canary }}" runs-on: "${{ matrix.os }}" defaults: run: @@ -42,7 +42,7 @@ jobs: - name: Set GO env run: | # If canary is specified, get the latest available golang pre-release instead of the major version - if [ "$canary" != "" ]; then + if [ "${{ matrix.canary }}" != "" ]; then . ./hack/build-integration-canary.sh canary::golang::latest fi diff --git a/.github/workflows/tigron.yml b/.github/workflows/tigron.yml new file mode 100644 index 00000000000..e238c659fe9 --- /dev/null +++ b/.github/workflows/tigron.yml @@ -0,0 +1,90 @@ +name: tigron + +on: + push: + branches: + - main + - 'release/**' + pull_request: + paths: 'mod/tigron/**' + +env: + GO_VERSION: 1.24.x + GOTOOLCHAIN: local + +jobs: + lint: + timeout-minutes: 10 + name: "${{ matrix.goos }} ${{ matrix.os }} | go ${{ matrix.canary }}" + runs-on: ${{ matrix.os }} + defaults: + run: + shell: bash + strategy: + matrix: + include: + - os: ubuntu-24.04 + - os: macos-15 + - os: windows-2022 + - os: ubuntu-24.04 + goos: freebsd + - os: ubuntu-24.04 + canary: go-canary + steps: + - name: "Checkout project" + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + fetch-depth: 100 + - name: "Set GO env" + run: | + # If canary is specified, get the latest available golang pre-release instead of the major version + if [ "${{ matrix.canary }}" != "" ]; then + . ./hack/build-integration-canary.sh + canary::golang::latest + fi + - name: "Install go" + uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0 + with: + go-version: ${{ env.GO_VERSION }} + check-latest: true + - name: "Install tools" + run: | + cd mod/tigron + echo "::group:: make install-dev-tools" + make install-dev-tools + if [ "$RUNNER_OS" == macOS ]; then + brew install yamllint shellcheck + fi + echo "::endgroup::" + - name: "lint" + env: + NO_COLOR: true + run: | + if [ "$RUNNER_OS" != "Linux" ] || [ "${{ matrix.goos }}" != "" ]; then + echo "It is not necessary to run the linter on this platform (${{ env.RUNNER_OS }} ${{ matrix.goos }})" + exit + fi + + echo "::group:: lint" + cd mod/tigron + export LINT_COMMIT_RANGE="$(jq -r '.after + "..HEAD"' ${GITHUB_EVENT_PATH})" + make lint + echo "::endgroup::" + - name: "test-unit" + run: | + echo "::group:: unit test" + cd mod/tigron + make test-unit + echo "::endgroup::" + - name: "test-unit-race" + run: | + echo "::group:: race test" + cd mod/tigron + make test-unit-race + echo "::endgroup::" + - name: "test-unit-bench" + run: | + echo "::group:: bench" + cd mod/tigron + make test-unit-bench + echo "::endgroup::"