Skip to content

feat(action-plugin): run dynamic-run over RPC #2793

feat(action-plugin): run dynamic-run over RPC

feat(action-plugin): run dynamic-run over RPC #2793

Workflow file for this run

name: Binaries
on:
push:
branches:
- main
pull_request:
merge_group:
workflow_dispatch:
inputs:
upload:
description: Upload built binaries as artifacts
type: boolean
default: false
concurrency:
group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
binary:
name: ${{ matrix.name }}
strategy:
fail-fast: false
matrix:
# `name` follows the LLVM/Rust target-triple convention
# (`<arch>-<vendor>-<sys>-<abi>`). For Windows, `-gnu` denotes the
# MinGW (GNU) ABI, as opposed to `-msvc`.
include:
- os: macos-26-intel
name: x86_64-apple-darwin
installable: .#dune
- os: macos-26
name: aarch64-apple-darwin
installable: .#dune
- os: ubuntu-26.04
name: x86_64-unknown-linux-musl
installable: .#dune-static
- os: ubuntu-26.04
name: x86_64-pc-windows-gnu
installable: .#windows-static
binary: dune.exe
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0 # for git describe
- uses: cachix/install-nix-action@v31
- uses: nix-community/cache-nix-action@v7
with:
primary-key: |
nix-${{ runner.os }}-${{ github.job }}-${{ matrix.name }}--${{ hashFiles('**/*.nix', '**/flake.lock') }}
restore-prefixes-first-match: nix-${{ runner.os }}-${{ github.job }}-${{ matrix.name }}--
gc-max-store-size-linux: 2G
- run: echo "(version $(git describe --always --dirty --abbrev=7))" >> dune-project
- run: nix build ${{ matrix.installable }}
- if: ${{ inputs.upload }}
uses: actions/upload-artifact@v7
with:
path: result/bin/${{ matrix.binary || 'dune' }}
name: dune-${{ matrix.name }}
combine:
if: ${{ inputs.upload }}
runs-on: ubuntu-latest
needs: binary
steps:
- uses: actions/upload-artifact/merge@v7
with:
separate-directories: true