From 8c860687d7eeaefb983c34d310120018ce2305d6 Mon Sep 17 00:00:00 2001 From: Gardel Date: Sat, 26 Apr 2025 14:33:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20gitea=20=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/build.yaml | 83 +++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 .gitea/workflows/build.yaml diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..6fbbef4 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -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