Files
mhr-cfw-go/.github/workflows/build.yml
T
2026-05-14 12:44:56 +03:30

104 lines
2.9 KiB
YAML

name: Build and Release
on:
push:
tags:
- 'v*'
jobs:
build:
strategy:
matrix:
include:
- os: ubuntu-latest
goos: linux
goarch: amd64
- os: ubuntu-latest
goos: linux
goarch: arm64
- os: macos-latest
goos: darwin
goarch: amd64
- os: macos-latest
goos: darwin
goarch: arm64
- os: windows-latest
goos: windows
goarch: amd64
- os: windows-latest
goos: windows
goarch: arm64
- os: windows-latest
goos: windows
goarch: 386
runs-on: ${{ matrix.os }}
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: Build
shell: bash
run: |
export GOOS=${{ matrix.goos }}
export GOARCH=${{ matrix.goarch }}
if [ "$GOOS" = "windows" ] && [ "$GOARCH" = "arm64" ]; then
echo "Skipping unsupported windows/arm64"
exit 0
fi
go build -ldflags "-s -w" -o mhr-cfw-go-${{ matrix.goos }}-${{ matrix.goarch }} ./cmd/mhr-cfw
- name: Rename Windows executable
if: matrix.goos == 'windows'
shell: bash
run: mv mhr-cfw-go-windows-${{ matrix.goarch }} mhr-cfw-go-windows-${{ matrix.goarch }}.exe
- name: Upload artifact
if: matrix.goos != 'windows' || matrix.goarch != 'arm64'
uses: actions/upload-artifact@v4
with:
name: mhr-cfw-go-${{ matrix.goos }}-${{ matrix.goarch }}
path: mhr-cfw-go-${{ matrix.goos }}-${{ matrix.goarch }}*
release:
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: ./binaries
pattern: mhr-cfw-go-*
merge-multiple: true
- name: List binaries
run: ls -la ./binaries
- name: Release
uses: softprops/action-gh-release@v2
with:
files: ./binaries/*
body: |
Changelog
Improvements
- Added startup prewarm to keep Apps Script containers hot for faster first requests.
- Added periodic keepalive ping to reduce idle latency spikes.
- Tuned HTTP/2 transport with idle and ping timeouts for more stable performance.
- Enabled static asset cache fast-path to reduce repeated relay calls.
Fixes
- Updated version to 1.4.0.
- Improved graceful shutdown by closing active client connections on stop.
🦢
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}