feat: 添加 gitea 构建脚本
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 6m5s

This commit is contained in:
2025-04-26 14:33:07 +08:00
parent 016dfaf14d
commit c11abf3efc

View File

@@ -0,0 +1,83 @@
name: Build and Push Docker Image
on:
push:
branches:
- dev
jobs:
build-and-push:
runs-on: ubuntu-latest
env:
CGO_ENABLED: 1
steps:
- name: Checkout codebase
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Pre Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: For act to work
run: npm -g install yarn
- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: '18.x'
cache: 'yarn'
cache-dependency-path: frontend
- name: Build Frontend
run: |
mkdir build
make assets
- name: Build Yggdrasil Server
uses: crazy-max/ghaction-xgo@v2
with:
xgo_version: latest
go_version: 1.24
dest: "${{ gitea.workspace }}/build"
prefix: yggdrasil
targets: windows/amd64,linux/amd64,linux/arm64,darwin/amd64,darwin/arm64
v: true
x: false
race: false
ldflags: -s -w -buildid=
tags: nomsgpack sqlite mysql
trimpath: true
- name: Create ZIP archive
run: |
cp -rv ./config_example.ini ./assets ./build/ || exit 1
pushd build || exit 1
ls -1 yggdrasil-* | while read LINE; do
PREFIX="${LINE%.*}"
SUFFIX="$(echo "$LINE" | grep -osE '\.\w+' || printf '')"
cp -v "$LINE" "yggdrasil$SUFFIX"
FILE="../$PREFIX.zip"
zip -9rv "$FILE" "yggdrasil$SUFFIX" *.ini assets
DGST="$FILE.dgst"
openssl dgst -md5 "$FILE" | sed 's/([^)]*)//g' >>"$DGST"
openssl dgst -sha1 "$FILE" | sed 's/([^)]*)//g' >>"$DGST"
openssl dgst -sha256 "$FILE" | sed 's/([^)]*)//g' >>"$DGST"
openssl dgst -sha512 "$FILE" | sed 's/([^)]*)//g' >>"$DGST"
done
popd || exit 1
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Registry
uses: docker/login-action@v3
with:
registry: docker.sunxinao.cn
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: docker.sunxinao.cn/gardel/yggdrasil-go:latest