Skip to content

Build caddy

Build caddy #612

Workflow file for this run

name: Build caddy
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- {
name: "windows-386",
GOARCH: 386,
GOOS: windows
}
- {
name: "windows-amd64",
GOARCH: amd64,
GOOS: windows
}
- {
name: "linux-amd64",
GOARCH: amd64,
GOOS: linux
}
- {
name: "linux-arm64",
GOARCH: arm64,
GOOS: linux
}
- {
name: "linux-armv5",
GOARCH: arm,
GOARM: 5,
GOOS: linux
}
- {
name: "linux-s390x",
GOARCH: s390x,
GOOS: linux
}
- {
name: "freebsd-amd64",
GOARCH: amd64,
GOOS: freebsd
}
- {
name: "freebsd-arm64",
GOARCH: arm64,
GOOS: freebsd
}
- {
name: "darwin-amd64",
GOARCH: amd64,
GOOS: darwin
}
- {
name: "darwin-arm64",
GOARCH: arm64,
GOOS: darwin
}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install go
uses: actions/setup-go@v5
with:
go-version: '1.25'
check-latest: true
- name: Install xcaddy
run: go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
- name: Build caddy
run: |
mkdir release-tmp
export GOARCH=${{ matrix.config.GOARCH }}
export GOOS=${{ matrix.config.GOOS }}
~/go/bin/xcaddy build \
--with github.com/caddyserver/forwardproxy=github.com/aUsernameWoW/forwardproxy@udpintcp \
--with github.com/imgk/caddy-trojan \
--with github.com/mholt/caddy-webdav \
--with github.com/WeidiDeng/caddy-cloudflare-ip \
--with github.com/caddy-dns/cloudflare \
--with github.com/caddy-dns/dynv6 \
--with github.com/mholt/caddy-events-exec \
--with github.com/mholt/caddy-l4 \
--with github.com/caddyserver/jsonc-adapter \
--output ./release-tmp/caddy
- name: Rename for Windows
if: matrix.config.GOOS == 'windows'
run: |
mv ./release-tmp/caddy ./release-tmp/caddy.exe
- name: Calculate Hash
run: |
cd ./release-tmp || exit 1
sha256sum caddy* > sha256
- name: Upload a Build Artifact
uses: actions/upload-artifact@v4
with:
name: caddy-${{ matrix.config.name }}
path: ./release-tmp/*