From a17f10e32352d31a02a363837305d170a7f1c620 Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Tue, 29 Sep 2026 09:42:52 -0700 Subject: [PATCH 1/4] ci: run Linux jobs on Blacksmith runners --- .github/actionlint.yaml | 4 ++++ .github/workflows/checks.yml | 2 +- .github/workflows/echo.yml | 5 +++-- 3 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 .github/actionlint.yaml diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 000000000..955305bcd --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,4 @@ +self-hosted-runner: + # Blacksmith runners (https://blacksmith.sh) + labels: + - blacksmith-4vcpu-ubuntu-2404 diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 87342283a..b9010e8da 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -23,7 +23,7 @@ env: jobs: check: - runs-on: ubuntu-latest + runs-on: blacksmith-4vcpu-ubuntu-2404 steps: - name: Checkout Code uses: *checkout_action diff --git a/.github/workflows/echo.yml b/.github/workflows/echo.yml index caaff30c0..52362b127 100644 --- a/.github/workflows/echo.yml +++ b/.github/workflows/echo.yml @@ -35,7 +35,8 @@ jobs: # we derive from the last four major releases promise. go: ["1.25", "1.26", "1.27"] name: ${{ matrix.os }} @ Go ${{ matrix.go }} - runs-on: ${{ matrix.os }} + # Linux jobs run on Blacksmith runners (https://blacksmith.sh), which sponsors Echo's CI; macOS and Windows stay on GitHub-hosted runners + runs-on: ${{ matrix.os == 'ubuntu-latest' && 'blacksmith-4vcpu-ubuntu-2404' || matrix.os }} steps: - name: Checkout Code uses: *checkout_action @@ -58,7 +59,7 @@ jobs: benchmark: needs: test name: Benchmark comparison - runs-on: ubuntu-latest + runs-on: blacksmith-4vcpu-ubuntu-2404 steps: - name: Checkout Code (Previous) uses: *checkout_action From 692c061c55951cd8f60fe2b08cfbec0d3278ec9b Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Tue, 29 Sep 2026 09:44:10 -0700 Subject: [PATCH 2/4] ci: run macOS and Windows jobs on Blacksmith runners too --- .github/actionlint.yaml | 2 ++ .github/workflows/echo.yml | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml index 955305bcd..188640f06 100644 --- a/.github/actionlint.yaml +++ b/.github/actionlint.yaml @@ -2,3 +2,5 @@ self-hosted-runner: # Blacksmith runners (https://blacksmith.sh) labels: - blacksmith-4vcpu-ubuntu-2404 + - blacksmith-6vcpu-macos-latest + - blacksmith-4vcpu-windows-2025 diff --git a/.github/workflows/echo.yml b/.github/workflows/echo.yml index 52362b127..c40d99b9a 100644 --- a/.github/workflows/echo.yml +++ b/.github/workflows/echo.yml @@ -34,9 +34,16 @@ jobs: # As we depend on `golang.org/x/` libraries which only support the last 2 Go releases, we could have situations when # we derive from the last four major releases promise. go: ["1.25", "1.26", "1.27"] + # Jobs run on Blacksmith runners (https://blacksmith.sh), which sponsors Echo's CI + include: + - os: ubuntu-latest + runner: blacksmith-4vcpu-ubuntu-2404 + - os: macos-latest + runner: blacksmith-6vcpu-macos-latest + - os: windows-latest + runner: blacksmith-4vcpu-windows-2025 name: ${{ matrix.os }} @ Go ${{ matrix.go }} - # Linux jobs run on Blacksmith runners (https://blacksmith.sh), which sponsors Echo's CI; macOS and Windows stay on GitHub-hosted runners - runs-on: ${{ matrix.os == 'ubuntu-latest' && 'blacksmith-4vcpu-ubuntu-2404' || matrix.os }} + runs-on: ${{ matrix.runner }} steps: - name: Checkout Code uses: *checkout_action From fd7b00722ef8919cbc3d56a49bbc613a85e72877 Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Tue, 29 Sep 2026 09:44:26 -0700 Subject: [PATCH 3/4] ci: use larger Blacksmith runners (8 vCPU Linux/Windows, 12 vCPU macOS) --- .github/actionlint.yaml | 6 +++--- .github/workflows/checks.yml | 2 +- .github/workflows/echo.yml | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml index 188640f06..25298b7bb 100644 --- a/.github/actionlint.yaml +++ b/.github/actionlint.yaml @@ -1,6 +1,6 @@ self-hosted-runner: # Blacksmith runners (https://blacksmith.sh) labels: - - blacksmith-4vcpu-ubuntu-2404 - - blacksmith-6vcpu-macos-latest - - blacksmith-4vcpu-windows-2025 + - blacksmith-8vcpu-ubuntu-2404 + - blacksmith-12vcpu-macos-latest + - blacksmith-8vcpu-windows-2025 diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index b9010e8da..705892991 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -23,7 +23,7 @@ env: jobs: check: - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: blacksmith-8vcpu-ubuntu-2404 steps: - name: Checkout Code uses: *checkout_action diff --git a/.github/workflows/echo.yml b/.github/workflows/echo.yml index c40d99b9a..b5ddc4ac9 100644 --- a/.github/workflows/echo.yml +++ b/.github/workflows/echo.yml @@ -37,11 +37,11 @@ jobs: # Jobs run on Blacksmith runners (https://blacksmith.sh), which sponsors Echo's CI include: - os: ubuntu-latest - runner: blacksmith-4vcpu-ubuntu-2404 + runner: blacksmith-8vcpu-ubuntu-2404 - os: macos-latest - runner: blacksmith-6vcpu-macos-latest + runner: blacksmith-12vcpu-macos-latest - os: windows-latest - runner: blacksmith-4vcpu-windows-2025 + runner: blacksmith-8vcpu-windows-2025 name: ${{ matrix.os }} @ Go ${{ matrix.go }} runs-on: ${{ matrix.runner }} steps: @@ -66,7 +66,7 @@ jobs: benchmark: needs: test name: Benchmark comparison - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: blacksmith-8vcpu-ubuntu-2404 steps: - name: Checkout Code (Previous) uses: *checkout_action From 609ed11fc85cc107d2a66be0a61b083e8551f96e Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Tue, 29 Sep 2026 13:13:47 -0700 Subject: [PATCH 4/4] ci: use Blacksmith Go build cache, add CI badge --- .github/workflows/checks.yml | 1 + .github/workflows/echo.yml | 2 ++ README.md | 1 + 3 files changed, 4 insertions(+) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 705892991..829563183 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -33,6 +33,7 @@ jobs: with: go-version: ${{ env.LATEST_GO_VERSION }} check-latest: true + cache: false # Blacksmith Go build cache replaces the Actions cache - name: Run golint run: | diff --git a/.github/workflows/echo.yml b/.github/workflows/echo.yml index b5ddc4ac9..2f302efed 100644 --- a/.github/workflows/echo.yml +++ b/.github/workflows/echo.yml @@ -52,6 +52,7 @@ jobs: uses: *setup_go_action with: go-version: ${{ matrix.go }} + cache: false # Blacksmith Go build cache replaces the Actions cache - name: Run Tests run: go test -race --coverprofile=coverage.coverprofile --covermode=atomic ./... @@ -83,6 +84,7 @@ jobs: uses: *setup_go_action with: go-version: ${{ env.LATEST_GO_VERSION }} + cache: false # Blacksmith Go build cache replaces the Actions cache - name: Install Dependencies run: go install golang.org/x/perf/cmd/benchstat@latest diff --git a/README.md b/README.md index 3e4fb9a7b..1c827f8f6 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ [![Go Report Card](https://goreportcard.com/badge/github.com/labstack/echo?style=flat-square)](https://goreportcard.com/report/github.com/labstack/echo) [![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/labstack/echo/echo.yml?style=flat-square)](https://github.com/labstack/echo/actions) [![Codecov](https://img.shields.io/codecov/c/github/labstack/echo.svg?style=flat-square)](https://codecov.io/gh/labstack/echo) +[![CI powered by Blacksmith](https://img.shields.io/badge/CI%20powered%20by-Blacksmith-F0FB29.svg?style=flat-square&labelColor=000000)](https://blacksmith.sh) [![Forum](https://img.shields.io/badge/community-forum-00afd1.svg?style=flat-square)](https://github.com/labstack/echo/discussions) [![Twitter](https://img.shields.io/badge/twitter-@labstack-55acee.svg?style=flat-square)](https://twitter.com/labstack) [![License](https://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/labstack/echo/master/LICENSE)