Skip to content

Still debugging

Still debugging #7

Workflow file for this run

name: Build Herbie Binaries in Odyssey
on:
push:
branches:
- main
- '*'
workflow_dispatch:
jobs:
build-herbie:
name: Build Herbie Binaries
strategy:
matrix:
include:
- os: ubuntu-20.04
os-name: linux
arch: x64
- os: macos-latest
os-name: macos
arch: x64
- os: windows-latest
os-name: windows
arch: x64
runs-on: ${{ matrix.os }}
steps:
# Checkout Odyssey repository
- name: Checkout Odyssey repository
uses: actions/checkout@v4
# Clone Herbie repository inside Odyssey
- name: Clone Herbie repository
run: git clone https://github.com/herbie-fp/herbie.git
# Install Racket (Required for Herbie)
- name: Install Racket
uses: Bogdanp/[email protected]
with:
version: 8.11
architecture: ${{ matrix.arch }}
# Install Rust Compiler (For egg-herbie)
- name: Install Rust compiler
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
# Build egg-herbie (Rust Backend for Herbie)
- name: Build egg-herbie
run: |
cd herbie/egg-herbie
cargo build --release
- name: Build Herbie
run: |
cd herbie
make install
- name: Locate Installed Herbie Binary
run: |
echo "Checking installed Herbie binary..."
find / -type f -name "herbie" -executable 2>/dev/null || echo "No binary found!"
# Create Tarball for Distribution
- name: Create tarball
run: |
cd herbie
raco pkg create --format zip egg-herbie
# Rename Tarballs and Checksums
- name: Rename tarballs
run: |
cd herbie
mv egg-herbie.zip egg-herbie-${{ matrix.os-name }}.zip
mv egg-herbie.zip.CHECKSUM egg-herbie-${{ matrix.os-name }}.zip.CHECKSUM
# Upload Pre-built Tarball
- name: Upload pre-built egg-herbie
uses: actions/upload-artifact@v4
with:
path: herbie/egg-herbie-${{ matrix.os-name }}.zip
name: egg-herbie-${{ matrix.os-name }}.zip
if-no-files-found: error
# Upload Pre-built Checksum
- name: Upload pre-built egg-herbie checksum
uses: actions/upload-artifact@v4
with:
path: herbie/egg-herbie-${{ matrix.os-name }}.zip.CHECKSUM
name: egg-herbie-${{ matrix.os-name }}.zip.CHECKSUM
if-no-files-found: error
- name: Find Herbie Executables
run: find herbie -type f -executable
# Upload Herbie Binary to Odyssey Artifacts
- name: Upload Herbie Binary to Odyssey
uses: actions/upload-artifact@v4
with:
path: herbie/target/release/herbie
name: herbie-binary-${{ matrix.os-name }}.tar.gz
if-no-files-found: error