name: Build and Release Native Binaries on: push: tags: - 'v*' jobs: build: strategy: matrix: include: - os: ubuntu-latest platform: linux-x64 - os: macos-latest platform: macos-arm64 runs-on: ${{ matrix.os }} steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup GraalVM uses: graalvm/setup-graalvm@v1 with: java-version: '24' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - name: Build project run: ./gradlew build - name: Build native binary run: ./gradlew nativeCompile - name: Rename binary for platform run: | mv build/native/nativeCompile/notevc notevc-${{ matrix.platform }} - name: Upload binary as artifact uses: actions/upload-artifact@v4 with: name: notevc-${{ matrix.platform }} path: notevc-${{ matrix.platform }} release: needs: build runs-on: ubuntu-latest permissions: contents: write steps: - name: Download all artifacts uses: actions/download-artifact@v4 with: path: binaries - name: Create Release uses: softprops/action-gh-release@v1 with: files: binaries/*/* draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}