From d003b3de64034da4e6f3a1f383020702aa5f9d0d Mon Sep 17 00:00:00 2001 From: Jeremie Fraeys Date: Thu, 12 Feb 2026 13:41:59 -0500 Subject: [PATCH] ci: replace slow setup-go with fast shell script in all workflows --- .forgejo/workflows/benchmark-metrics.yml | 17 ++++++++++--- .forgejo/workflows/ci.yml | 32 ++++++++++++++++++------ .forgejo/workflows/docs.yml | 15 ++++++++--- .forgejo/workflows/release-mirror.yml | 15 ++++++++--- .forgejo/workflows/test.yml | 7 ------ 5 files changed, 62 insertions(+), 24 deletions(-) delete mode 100644 .forgejo/workflows/test.yml diff --git a/.forgejo/workflows/benchmark-metrics.yml b/.forgejo/workflows/benchmark-metrics.yml index d035b19..a01c7c9 100644 --- a/.forgejo/workflows/benchmark-metrics.yml +++ b/.forgejo/workflows/benchmark-metrics.yml @@ -11,10 +11,19 @@ jobs: - name: Checkout code uses: actions/checkout@v5 - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: '1.21' + - name: Setup Go (fast) + run: | + REQUIRED_GO="1.21" + if command -v go &> /dev/null && go version | grep -q "go${REQUIRED_GO}"; then + echo "Go ${REQUIRED_GO} already installed - skipping download" + else + echo "Installing Go ${REQUIRED_GO}..." + curl -sL "https://go.dev/dl/go${REQUIRED_GO}.linux-amd64.tar.gz" | sudo tar -C /usr/local -xzf - + export PATH="/usr/local/go/bin:$PATH" + echo "/usr/local/go/bin" >> $GITHUB_PATH + echo "Go ${REQUIRED_GO} installed" + fi + go version - name: Cache Go modules uses: actions/cache@v4 diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 3d1cf71..845ae74 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -40,9 +40,18 @@ jobs: uses: actions/checkout@v5 - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: ${{ env.GO_VERSION }} + run: | + REQUIRED_GO="${GO_VERSION}" + if command -v go &> /dev/null && go version | grep -q "go${REQUIRED_GO}"; then + echo "Go ${REQUIRED_GO} already installed - skipping download" + else + echo "Installing Go ${REQUIRED_GO}..." + curl -sL "https://go.dev/dl/go${REQUIRED_GO}.linux-amd64.tar.gz" | sudo tar -C /usr/local -xzf - + export PATH="/usr/local/go/bin:$PATH" + echo "/usr/local/go/bin" >> $GITHUB_PATH + echo "Go ${REQUIRED_GO} installed" + fi + go version - name: Cache Go modules uses: actions/cache@v4 @@ -130,10 +139,19 @@ jobs: - name: Checkout code uses: actions/checkout@v5 - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: ${{ env.GO_VERSION }} + - name: Set up Go (fast) + run: | + REQUIRED_GO="${GO_VERSION}" + if command -v go &> /dev/null && go version | grep -q "go${REQUIRED_GO}"; then + echo "Go ${REQUIRED_GO} already installed - skipping download" + else + echo "Installing Go ${REQUIRED_GO}..." + curl -sL "https://go.dev/dl/go${REQUIRED_GO}.linux-amd64.tar.gz" | sudo tar -C /usr/local -xzf - + export PATH="/usr/local/go/bin:$PATH" + echo "/usr/local/go/bin" >> $GITHUB_PATH + echo "Go ${REQUIRED_GO} installed" + fi + go version - name: Set up Zig uses: goto-bus-stop/setup-zig@v2 diff --git a/.forgejo/workflows/docs.yml b/.forgejo/workflows/docs.yml index 82a39d5..db5d7af 100644 --- a/.forgejo/workflows/docs.yml +++ b/.forgejo/workflows/docs.yml @@ -32,9 +32,18 @@ jobs: sudo apt-get install -y wget rsync git - name: Set up Go (for Hugo Modules) - uses: actions/setup-go@v5 - with: - go-version: ${{ env.GO_VERSION }} + run: | + REQUIRED_GO="${GO_VERSION}" + if command -v go &> /dev/null && go version | grep -q "go${REQUIRED_GO}"; then + echo "Go ${REQUIRED_GO} already installed - skipping download" + else + echo "Installing Go ${REQUIRED_GO}..." + curl -sL "https://go.dev/dl/go${REQUIRED_GO}.linux-amd64.tar.gz" | sudo tar -C /usr/local -xzf - + export PATH="/usr/local/go/bin:$PATH" + echo "/usr/local/go/bin" >> $GITHUB_PATH + echo "Go ${REQUIRED_GO} installed" + fi + go version - name: Install Hugo run: | diff --git a/.forgejo/workflows/release-mirror.yml b/.forgejo/workflows/release-mirror.yml index aec848d..4ea57a6 100644 --- a/.forgejo/workflows/release-mirror.yml +++ b/.forgejo/workflows/release-mirror.yml @@ -118,9 +118,18 @@ jobs: uses: actions/checkout@v5 - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: ${{ env.GO_VERSION }} + run: | + REQUIRED_GO="${GO_VERSION}" + if command -v go &> /dev/null && go version | grep -q "go${REQUIRED_GO}"; then + echo "Go ${REQUIRED_GO} already installed - skipping download" + else + echo "Installing Go ${REQUIRED_GO}..." + curl -sL "https://go.dev/dl/go${REQUIRED_GO}.linux-amd64.tar.gz" | sudo tar -C /usr/local -xzf - + export PATH="/usr/local/go/bin:$PATH" + echo "/usr/local/go/bin" >> $GITHUB_PATH + echo "Go ${REQUIRED_GO} installed" + fi + go version - name: Build binaries run: | diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml deleted file mode 100644 index 539c560..0000000 --- a/.forgejo/workflows/test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: Test -on: [push] -jobs: - test: - runs-on: self-hosted - steps: - - run: echo "Hello from self-hosted" \ No newline at end of file