Skip to content

Daily Build

Daily Build #125

Workflow file for this run

name: Daily Build
on:
workflow_dispatch:
schedule:
- cron: '0 17 * * *' # 每天3点执行
jobs:
build:
runs-on: ubuntu-latest
env:
GO_VERSION: 1.23.4
E_VERSION: daily
strategy:
matrix:
goos: [linux, darwin]
goarch: [amd64, arm64]
steps:
- name: 导入仓库内容
uses: actions/checkout@v3
- name: 加载版本号
run: echo "VERSION=${{ env.E_VERSION }}" >> $GITHUB_ENV
- name: APT安装依赖
run: |
sudo apt update
sudo apt upgrade -y
sudo apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates tar zstd -y
- name: 部署Go环境
uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
- name: 部署Xcaddy
run: |
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-xcaddy-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-xcaddy.list
sudo apt update
sudo apt install -y xcaddy
- name: 打包编译-EXTRA
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: |
xcaddy build master --with github.com/caddyserver/cache-handler --with github.com/ueffel/caddy-brotli --with github.com/caddyserver/transform-encoder --with github.com/WJQSERVER/caddy-ext/ratelimit@master --with github.com/caddy-dns/cloudflare
mkdir -p caddy-package
mkdir -p caddy-package/LICENSE
mv caddy caddy-package/
cp LICENSE_caddy caddy-package/LICENSE/
tar -czvf caddy-${{ matrix.goos }}-${{ matrix.goarch }}.tar.gz -C caddy-package .
tar -I 'zstd -15' -cf caddy-${{ matrix.goos }}-${{ matrix.goarch }}.tar.zst -C caddy-package .
- name: 打包编译-L4
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: |
xcaddy build master --with github.com/caddyserver/cache-handler --with github.com/ueffel/caddy-brotli --with github.com/caddyserver/transform-encoder --with github.com/WJQSERVER/caddy-ext/ratelimit@master --with github.com/caddy-dns/cloudflare --with github.com/mholt/caddy-l4
mkdir -p caddy-package
mkdir -p caddy-package/LICENSE
mv caddy caddy-package/
cp LICENSE_caddy caddy-package/LICENSE/
tar -czvf caddy-${{ matrix.goos }}-${{ matrix.goarch }}-l4.tar.gz -C caddy-package .
tar -I 'zstd -15' -cf caddy-${{ matrix.goos }}-${{ matrix.goarch }}-l4.tar.zst -C caddy-package .
- name: 打包编译-PURE
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: |
xcaddy build
mkdir -p caddy-package
mkdir -p caddy-package/LICENSE
mv caddy caddy-package/
cp LICENSE_caddy caddy-package/LICENSE/
tar -czvf caddy-${{ matrix.goos }}-${{ matrix.goarch }}-pure.tar.gz -C caddy-package .
tar -I 'zstd -15' -cf caddy-${{ matrix.goos }}-${{ matrix.goarch }}-pure.tar.zst -C caddy-package .
- name: 上传至Release
id: create_release
uses: ncipollo/release-action@v1
with:
name: ${{ env.VERSION }}
artifacts: ./caddy*.tar.gz, ./caddy*.tar.zst
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ env.VERSION }}
allowUpdates: true
prerelease: true
env:
export PATH: $PATH:/usr/local/go/bin
package:
runs-on: ubuntu-latest
needs: build
env:
E_VERSION: daily
strategy:
matrix:
goos: [linux, darwin]
goarch: [amd64, arm64]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: 加载版本号
run: echo "VERSION=${{ env.E_VERSION }}" >> $GITHUB_ENV
- name: 安装依赖
run: |
sudo apt update
sudo apt install curl wget tar unzip zstd -y
- name: 打包 EXTRA
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: |
sudo wget -O caddyd-${{ matrix.goos }}-${{ matrix.goarch }}.tar.gz https://github.com/WJQSERVER-STUDIO/caddy/releases/download/${{ env.VERSION }}/caddy-${{ matrix.goos }}-${{ matrix.goarch }}.tar.gz
sudo mkdir -p caddy_web
sudo tar -xzvf caddyd-${{ matrix.goos }}-${{ matrix.goarch }}.tar.gz -C caddy_web
sudo mkdir -p caddy_web/LICENSE
sudo ls -l caddy_web
sudo cp LICENSE caddy_web/LICENSE/
sudo cp LICENSE_caddy caddy_web/LICENSE/
sudo cp LICENSE_README.md caddy_web/LICENSE/
sudo cp README.md caddy_web/
sudo cp -r pages caddy_web/
sudo tar -czf caddy-${{ matrix.goos }}-${{ matrix.goarch }}-pages.tar.gz -C caddy_web .
sudo tar -I 'zstd -15' -cf caddy-${{ matrix.goos }}-${{ matrix.goarch }}-pages.tar.zst -C caddy_web .
- name: 打包 L4
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: |
sudo wget -O caddyd-${{ matrix.goos }}-${{ matrix.goarch }}-l4.tar.gz https://github.com/WJQSERVER-STUDIO/caddy/releases/download/${{ env.VERSION }}/caddy-${{ matrix.goos }}-${{ matrix.goarch }}-l4.tar.gz
sudo mkdir -p caddy_web
sudo tar -xzvf caddyd-${{ matrix.goos }}-${{ matrix.goarch }}-l4.tar.gz -C caddy_web
sudo mkdir -p caddy_web/LICENSE
sudo cp LICENSE caddy_web/LICENSE/
sudo cp LICENSE_caddy caddy_web/LICENSE/
sudo cp LICENSE_README.md caddy_web/LICENSE/
sudo cp README.md caddy_web/
sudo cp -r pages caddy_web/
sudo tar -czf caddy-${{ matrix.goos }}-${{ matrix.goarch }}-pages-l4.tar.gz -C caddy_web .
sudo tar -I 'zstd -15' -cf caddy-${{ matrix.goos }}-${{ matrix.goarch }}-pages-l4.tar.zst -C caddy_web .
- name: 打包 Pure
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: |
sudo wget -O caddyd-${{ matrix.goos }}-${{ matrix.goarch }}-pure.tar.gz https://github.com/WJQSERVER-STUDIO/caddy/releases/download/${{ env.VERSION }}/caddy-${{ matrix.goos }}-${{ matrix.goarch }}-pure.tar.gz
sudo mkdir -p caddy_web
sudo tar -xzvf caddyd-${{ matrix.goos }}-${{ matrix.goarch }}-pure.tar.gz -C caddy_web
sudo mkdir -p caddy_web/LICENSE
sudo cp LICENSE caddy_web/LICENSE/
sudo cp LICENSE_caddy caddy_web/LICENSE/
sudo cp LICENSE_README.md caddy_web/LICENSE/
sudo cp README.md caddy_web/
sudo cp -r pages caddy_web/
sudo tar -czf caddy-${{ matrix.goos }}-${{ matrix.goarch }}-pages-pure.tar.gz -C caddy_web .
sudo tar -I 'zstd -15' -cf caddy-${{ matrix.goos }}-${{ matrix.goarch }}-pages-pure.tar.zst -C caddy_web .
- name: 上传Release
id: create_release
uses: ncipollo/release-action@v1
with:
name: ${{ env.VERSION }}
artifacts: ./caddy*pages.tar.gz, ./caddy*pages.tar.zst, ./caddy*pages-l4.tar.gz, ./caddy*pages-l4.tar.zst, ./caddy*pages-pure.tar.gz, ./caddy*pages-pure.tar.zst
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ env.VERSION }}
allowUpdates: true
prerelease: true
env:
export PATH: $PATH:/usr/local/go/bin
docker:
runs-on: ubuntu-latest
needs: package
env:
E_VERSION: daily
IMAGE_NAME: wjqserver/caddy
DOCKERFILE_DEBIAN: docker/daily/debian
DOCKERFILE_ALPINE: docker/daily/alpine
steps:
- name: Checkout
uses: actions/checkout@v4
- name: 加载版本号
run: echo "VERSION=${{ env.E_VERSION }}" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: 构建Debian镜像
uses: docker/[email protected]
with:
file: ./${{ env.DOCKERFILE_DEBIAN }}
platforms: linux/amd64,linux/arm64
push: true
tags: |
${{ env.IMAGE_NAME }}:${{ env.VERSION }}
- name: 构建Alpine镜像
uses: docker/[email protected]
with:
file: ./${{ env.DOCKERFILE_ALPINE }}
platforms:
linux/amd64,linux/arm64
push: true
tags: |
${{ env.IMAGE_NAME }}:${{ env.VERSION }}-alpine