diff --git a/.github/workflows/build-binary.yaml b/.github/workflows/build-binary.yaml new file mode 100644 index 0000000..7b16bde --- /dev/null +++ b/.github/workflows/build-binary.yaml @@ -0,0 +1,67 @@ +name: Build and Extract Janus Binaries + +on: + push: + branches: + - main + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + platform: [linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64, windows/arm64] + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Set up QEMU for Multi-Arch + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Janus for ${{ matrix.platform }} + run: | + docker buildx create --use + docker buildx build \ + --platform=${{ matrix.platform }} \ + --output type=local,dest=./output-${{ matrix.platform }} ./JanusCoreDeps + + - name: List Extracted Binaries + run: ls -lh ./output-${{ matrix.platform }}/opt/janus + + - name: Upload Janus Binaries as Artifacts + uses: actions/upload-artifact@v4 + with: + name: janus-binary-${{ matrix.platform }} + path: ./output-${{ matrix.platform }}/opt/janus + + publish: + needs: build + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Download All Binaries + uses: actions/download-artifact@v4 + with: + path: bin/ + + - name: Organize Binaries + run: | + mkdir -p release + mv bin/janus-binary-*/* release/ + ls -lh release/ + + - name: Commit and Push Binaries + run: | + git config --global user.name "github-actions" + git config --global user.email "github-actions@github.com" + git add release/ + git commit -m "Update Janus binaries" || echo "No changes to commit" + git push \ No newline at end of file