diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b28645..aeb9765 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,9 @@ on: pull_request: branches: [main, master] +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + jobs: test: name: Test @@ -53,3 +56,55 @@ jobs: BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ) LDFLAGS="-s -w -X main.version=${VERSION} -X main.commit=${COMMIT} -X main.buildDate=${BUILD_DATE}" go build -ldflags "${LDFLAGS}" -tags "with_clash_api,with_quic" -o xboard-node-${{ matrix.goos }}-${{ matrix.goarch }} ./cmd/xboard-node + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: xboard-node-${{ matrix.goos }}-${{ matrix.goarch }} + path: xboard-node-${{ matrix.goos }}-${{ matrix.goarch }} + + build-docker: + name: Build & Push Docker Image + runs-on: ubuntu-latest + needs: test + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v4 + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: | + ghcr.io/cedar2025/xboard-node:latest + ghcr.io/cedar2025/xboard-node:${{ github.sha }} + + release: + name: Release + runs-on: ubuntu-latest + needs: build + if: startsWith(github.ref, 'refs/tags/') + steps: + - uses: actions/checkout@v4 + - name: Download all artifacts + uses: actions/download-artifact@v4 + - name: Release + uses: softprops/action-gh-release@v2 + with: + files: | + xboard-node-linux-amd64/xboard-node-linux-amd64 + xboard-node-linux-arm64/xboard-node-linux-arm64 + draft: false + prerelease: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}