SNAPKITTYWEST's picture
chore: push full sov-kernel-monster content from local build
9425aed verified
Raw
History Blame Contribute Delete
3.54 kB
name: Build All Languages
on:
push:
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 60
env:
# Cache paths
CARGO_HOME: ${{ github.workspace }}/.cargo
RUSTUP_HOME: ${{ github.workspace }}/.rustup
JULIA_DEPOT_PATH: ${{ github.workspace }}/.julia
R_LIBS_USER: ${{ github.workspace }}/.Rpackages
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install system dependencies (gfortran, cmake, etc.)
run: |
sudo apt-get update
sudo apt-get install -y gfortran cmake libssl-dev pkg-config
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: rustfmt, clippy
- name: Cache Cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Setup Julia
uses: julia-actions/setup-julia@v1
with:
version: '1.10'
arch: x64
- name: Cache Julia depot
uses: actions/cache@v4
with:
path: ${{ env.JULIA_DEPOT_PATH }}
key: ${{ runner.os }}-julia-${{ hashFiles('**/Project.toml', '**/Manifest.toml') }}
restore-keys: |
${{ runner.os }}-julia-
- name: Setup Elixir (and Erlang)
uses: erlef/setup-beam@v1
with:
elixir-version: '1.16'
otp-version: '26.2'
- name: Setup R
uses: r-lib/actions/setup-r@v2
with:
r-version: 'release'
use-public-rspm: true
- name: Cache R packages
uses: actions/cache@v4
with:
path: ${{ env.R_LIBS_USER }}
key: ${{ runner.os }}-r-${{ hashFiles('**/DESCRIPTION') }}
restore-keys: |
${{ runner.os }}-r-
- name: Install Lake via Elan (Lean 4)
run: |
curl https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh -sSf | sh -s -- -y
echo "$HOME/.elan/bin" >> $GITHUB_PATH
elan component add lake
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
cache: true
- name: CMake Build (C/C++/Fortran)
run: |
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel $(nproc)
- name: Cargo Build (Rust)
run: cargo build --release --workspace --all-targets
- name: FPM Test (Fortran)
run: |
if command -v fpm &> /dev/null; then
fpm test --profile release
else
echo "fpm not found, skipping Fortran tests."
echo "Install fpm via: curl -fsSL https://fpm.fortran-lang.org/install.sh | bash"
fi
- name: Julia Test
run: |
julia --project -e 'using Pkg; Pkg.test()'
- name: Mix Test (Elixir)
run: |
mix deps.get
mix test
- name: R CMD Check
uses: r-lib/actions/check-r-package@v2
with:
upload-snapshots: true
- name: Lake Build (Lean 4)
run: lake build