name: Release binaries on: push: tags: - 'v*' permissions: contents: write packages: write jobs: linux-x86_64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install deps run: | sudo apt-get update sudo apt-get install -y \ build-essential \ libgmp-dev \ libunistring-dev \ libgc-dev \ xxd \ binutils - name: Build run: | make clean make -j - name: Package run: | TAG=${GITHUB_REF#refs/tags/} tar -C build -czf tomo-linux-x86_64.tar.gz tomo@${TAG} sha256sum tomo-linux-x86_64.tar.gz > tomo-linux-x86_64.tar.gz.sha256 - name: Upload uses: softprops/action-gh-release@v2 with: files: | tomo-linux-x86_64.tar.gz tomo-linux-x86_64.tar.gz.sha256 linux-aarch64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install deps run: | sudo apt-get update sudo apt-get install -y \ build-essential \ libgmp-dev \ libunistring-dev \ libgc-dev \ xxd \ binutils - name: Build run: | make clean make -j - name: Package run: | TAG=${GITHUB_REF#refs/tags/} tar -C build -czf tomo-linux-aarch64.tar.gz tomo@${TAG} sha256sum tomo-linux-aarch64.tar.gz > tomo-linux-aarch64.tar.gz.sha256 - name: Upload uses: softprops/action-gh-release@v2 with: files: | tomo-linux-aarch64.tar.gz tomo-linux-aarch64.tar.gz.sha256 macos: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Install deps run: | brew update brew install gmp libunistring bdw-gc llvm binutils - name: Build arm64 run: | make clean make -j \ CC=clang \ CFLAGS="-arch arm64" \ LDFLAGS="-arch arm64" mv build/tomo build/tomo-arm64 - name: Build x86_64 run: | make clean make -j \ CC=clang \ CFLAGS="-arch x86_64" \ LDFLAGS="-arch x86_64" mv build/tomo build/tomo-x86_64 - name: Create universal binary run: | lipo -create \ build/tomo-arm64 \ build/tomo-x86_64 \ -output build/tomo lipo -info build/tomo - name: Package run: | TAG=${GITHUB_REF#refs/tags/} tar -C build -czf tomo-macos-universal.tar.gz tomo@${TAG} shasum -a 256 tomo-macos-universal.tar.gz > tomo-macos-universal.tar.gz.sha256 - name: Upload uses: softprops/action-gh-release@v2 with: files: | tomo-macos-universal.tar.gz tomo-macos-universal.tar.gz.sha256