diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..7d4e146 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,68 @@ +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: | + make assets + rm -rf /host/${{ gitea.workspace }} && mkdir -p /host/${{ gitea.workspace }} + cp -a . /host/${{ gitea.workspace }}/ + - name: Build Yggdrasil Server + uses: crazy-max/ghaction-xgo@v2 + with: + xgo_version: latest + go_version: 1.24 + dest: build + prefix: yggdrasil + targets: linux/amd64,linux/arm64 + v: true + x: false + race: false + ldflags: -s -w -buildid= + tags: nomsgpack sqlite mysql + trimpath: true + - name: Store Back Binaries + run: | + cp -a /host/${{ gitea.workspace }}/build/. build + - 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