Skip to content

Cache Warmup

Cache Warmup #13

Workflow file for this run

name: Cache Warmup
# Proactively build and cache LLVM/solc artifacts so that downstream CI
# workflows (test, sanitizer, coverage, integration-tests) hit warm caches
# on the first run after a submodule bump.
on:
push:
branches:
- main
paths:
- 'solx-llvm'
- 'solx-solidity'
schedule:
# Daily safety net at 04:00 UTC — rebuilds any evicted caches
- cron: '0 4 * * *'
workflow_dispatch:
permissions:
contents: read
packages: read
concurrency:
group: cache-warmup
cancel-in-progress: true
jobs:
# ── LLVM: standard config (test.yaml / build-and-test) ──────────────
warm-llvm:
strategy:
fail-fast: false
matrix:
include:
- name: "MacOS x86"
runner: macos-15-intel
- name: "MacOS arm64"
runner: macos-15
- name: "Linux x86 gnu"
runner: ubuntu-24.04
image: ghcr.io/nomicfoundation/solx-ci-runner@sha256:c0866d146261cd0a51dc7d9077444b8ac3dde12c53d2151137834e6be149dbc7
- name: "Linux ARM64 gnu"
runner: ubuntu-24.04-arm
image: ghcr.io/nomicfoundation/solx-ci-runner@sha256:c0866d146261cd0a51dc7d9077444b8ac3dde12c53d2151137834e6be149dbc7
- name: "Windows"
runner: windows-2025
runs-on: ${{ matrix.runner }}
container:
image: ${{ matrix.image || '' }}
name: "LLVM · ${{ matrix.name }}"
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
- name: Checkout submodules
run: |
git config --global --add safe.directory '*'
git submodule update --force --depth=1 --recursive --checkout
- name: Prepare Windows env
if: runner.os == 'Windows'
uses: ./.github/actions/prepare-msys
- name: Build LLVM
uses: ./.github/actions/build-llvm
with:
build-type: RelWithDebInfo
enable-assertions: 'true'
enable-mlir: 'true'
# ── solc: standard config (test.yaml / build-and-test) ──────────────
warm-solc:
strategy:
fail-fast: false
matrix:
include:
- name: "MacOS x86"
runner: macos-15-intel
- name: "MacOS arm64"
runner: macos-15
- name: "Linux x86 gnu"
runner: ubuntu-24.04
image: ghcr.io/nomicfoundation/solx-ci-runner@sha256:c0866d146261cd0a51dc7d9077444b8ac3dde12c53d2151137834e6be149dbc7
- name: "Linux ARM64 gnu"
runner: ubuntu-24.04-arm
image: ghcr.io/nomicfoundation/solx-ci-runner@sha256:c0866d146261cd0a51dc7d9077444b8ac3dde12c53d2151137834e6be149dbc7
- name: "Windows"
runner: windows-2025
runs-on: ${{ matrix.runner }}
container:
image: ${{ matrix.image || '' }}
name: "solc · ${{ matrix.name }}"
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
- name: Checkout submodules
run: |
git config --global --add safe.directory '*'
git submodule update --force --depth=1 --recursive --checkout
- name: Prepare Windows env
if: runner.os == 'Windows'
uses: ./.github/actions/prepare-msys
- name: Build solc
uses: ./.github/actions/build-solc
with:
cmake-build-type: RelWithDebInfo
boost-version: '1.83.0'
working-dir: 'solx-solidity'
# ── LLVM: sanitizer config (sanitizer.yaml) ─────────────────────────
warm-llvm-sanitizer:
runs-on: ubuntu-24.04
container:
image: ghcr.io/nomicfoundation/solx-ci-runner@sha256:c0866d146261cd0a51dc7d9077444b8ac3dde12c53d2151137834e6be149dbc7
name: "LLVM · Sanitizer"
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
- name: Checkout submodules
run: |
git config --global --add safe.directory '*'
git submodule update --force --depth=1 --recursive --checkout
- name: Build LLVM
uses: ./.github/actions/build-llvm
with:
build-type: RelWithDebInfo
enable-assertions: 'true'
sanitizer: 'Address'
# ── LLVM: coverage config (coverage.yaml) ───────────────────────────
warm-llvm-coverage:
runs-on: ubuntu-24.04
container:
image: ghcr.io/nomicfoundation/solx-ci-runner@sha256:c0866d146261cd0a51dc7d9077444b8ac3dde12c53d2151137834e6be149dbc7
name: "LLVM · Coverage"
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
- name: Checkout submodules
run: |
git config --global --add safe.directory '*'
git submodule update --force --depth=1 --recursive --checkout
- name: Build LLVM
uses: ./.github/actions/build-llvm
with:
build-type: RelWithDebInfo
enable-assertions: 'false'
enable-coverage: 'true'
enable-mlir: 'true'
# ── LLVM + solc: integration config (integration-tests.yaml) ────────
warm-llvm-integration:
runs-on: ubuntu-24.04
container:
image: ghcr.io/nomicfoundation/solx-ci-runner@sha256:c0866d146261cd0a51dc7d9077444b8ac3dde12c53d2151137834e6be149dbc7
name: "LLVM + solc · Integration"
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
- name: Checkout submodules
run: |
git config --global --add safe.directory '*'
git submodule update --force --depth=1 --recursive --checkout
- name: Build LLVM
uses: ./.github/actions/build-llvm
with:
build-type: Release
enable-assertions: 'false'
- name: Build solc
uses: ./.github/actions/build-solc
with:
cmake-build-type: Release
working-dir: 'solx-solidity'