Skip to content

caddy

caddy #19

Workflow file for this run

name: caddy
on:
push:
branches:
- main
paths:
- '.github/workflows/caddy.yaml'
schedule:
- cron: "0 0 * * Sat"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
# Setup Go environment
- name: Setup Go
uses: actions/setup-go@v5
with:
check-latest: true # Ensure the latest Go version is used
# Install xcaddy
- name: Install xcaddy
env:
GOPATH: ${{ github.workspace }}/go # Use GITHUB_WORKSPACE for GOPATH
PATH: ${{ github.workspace }}/go/bin:${{ runner.home }}/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/usr/local/go/bin:$PATH
run: go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
# Build Caddy with plugins
- name: Build Caddy with plugins
env:
GOPATH: ${{ github.workspace }}/go # Use GITHUB_WORKSPACE for GOPATH
PATH: ${{ github.workspace }}/go/bin:${{ runner.home }}/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/usr/local/go/bin:$PATH
run: |
version=$(curl -s "https://api.github.com/repos/caddyserver/caddy/releases/latest" | jq -r .tag_name)
echo "CaddyVer=${version}" >> $GITHUB_ENV
for arch in amd64 arm64; do
xcaddy build latest \
--with github.com/imgk/caddy-trojan \
--with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive \
--output caddy_linux-${arch}
zstd -k -19 caddy_linux-${arch} -o caddy_linux-${arch}.zst
done
# Upload built artifacts
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: caddy
path: ./caddy_linux-*.zst
# Upload release
- name: Upload release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ env.CaddyVer }}
body: Caddy ${{ env.CaddyVer }} with Trojan and Forwardproxy
file: ./caddy_linux-*.zst
overwrite: true
file_glob: true