split out deps into separate workflow with better caching using deps.yml from cpu.git
This commit is contained in:
parent
cb17913004
commit
0c9c48a066
77
.forgejo/workflows/deps.yml
Normal file
77
.forgejo/workflows/deps.yml
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
||||||
|
# See Notices.txt for copyright information
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
outputs:
|
||||||
|
cache-primary-key:
|
||||||
|
value: ${{ jobs.deps.outputs.cache-primary-key }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deps:
|
||||||
|
runs-on: debian-12
|
||||||
|
outputs:
|
||||||
|
cache-primary-key: ${{ steps.restore-deps.outputs.cache-primary-key }}
|
||||||
|
steps:
|
||||||
|
- uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- uses: https://code.forgejo.org/actions/cache/restore@v3
|
||||||
|
id: restore-deps
|
||||||
|
with:
|
||||||
|
path: deps
|
||||||
|
key: deps-${{ runner.os }}-${{ hashFiles('.forgejo/workflows/deps.yml') }}
|
||||||
|
lookup-only: true
|
||||||
|
- name: Install Apt packages
|
||||||
|
if: steps.restore-deps.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
apt-get update -qq
|
||||||
|
apt-get install -qq \
|
||||||
|
bison \
|
||||||
|
build-essential \
|
||||||
|
ccache \
|
||||||
|
clang \
|
||||||
|
cvc5 \
|
||||||
|
flex \
|
||||||
|
gawk \
|
||||||
|
g++ \
|
||||||
|
git \
|
||||||
|
libboost-filesystem-dev \
|
||||||
|
libboost-python-dev \
|
||||||
|
libboost-system-dev \
|
||||||
|
libffi-dev \
|
||||||
|
libreadline-dev \
|
||||||
|
lld \
|
||||||
|
pkg-config \
|
||||||
|
python3 \
|
||||||
|
python3-click \
|
||||||
|
tcl-dev \
|
||||||
|
zlib1g-dev
|
||||||
|
- name: Install Firtool
|
||||||
|
if: steps.restore-deps.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
mkdir -p deps
|
||||||
|
wget -O deps/firrtl.tar.gz https://github.com/llvm/circt/releases/download/firtool-1.86.0/firrtl-bin-linux-x64.tar.gz
|
||||||
|
sha256sum -c - <<<'bf6f4ab18ae76f135c944efbd81e25391c31c1bd0617c58ab0592640abefee14 deps/firrtl.tar.gz'
|
||||||
|
tar -C deps -xvaf deps/firrtl.tar.gz
|
||||||
|
rm -rf deps/firtool
|
||||||
|
mv deps/firtool-1.86.0 deps/firtool
|
||||||
|
- name: Get SymbiYosys
|
||||||
|
if: steps.restore-deps.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 --branch=yosys-0.45 https://github.com/YosysHQ/sby.git deps/sby
|
||||||
|
- name: Build Z3
|
||||||
|
if: steps.restore-deps.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 --recursive --branch=z3-4.13.3 https://github.com/Z3Prover/z3.git deps/z3
|
||||||
|
(cd deps/z3; PYTHON=python3 ./configure --prefix=/usr/local)
|
||||||
|
make -C deps/z3/build -j"$(nproc)"
|
||||||
|
- name: Build Yosys
|
||||||
|
if: steps.restore-deps.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 --recursive --branch=0.45 https://github.com/YosysHQ/yosys.git deps/yosys
|
||||||
|
make -C deps/yosys -j"$(nproc)"
|
||||||
|
- uses: https://code.forgejo.org/actions/cache/save@v3
|
||||||
|
if: steps.restore-deps.outputs.cache-hit != 'true'
|
||||||
|
with:
|
||||||
|
path: deps
|
||||||
|
key: ${{ steps.restore-deps.outputs.cache-primary-key }}
|
|
@ -3,8 +3,11 @@
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
deps:
|
||||||
|
uses: ./.forgejo/workflows/deps.yml
|
||||||
test:
|
test:
|
||||||
runs-on: debian-12
|
runs-on: debian-12
|
||||||
|
needs: deps
|
||||||
steps:
|
steps:
|
||||||
- uses: https://code.forgejo.org/actions/checkout@v3
|
- uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
|
@ -33,39 +36,21 @@ jobs:
|
||||||
python3-click \
|
python3-click \
|
||||||
tcl-dev \
|
tcl-dev \
|
||||||
z3 \
|
z3 \
|
||||||
zlib1g-dev \
|
zlib1g-dev
|
||||||
- name: Cache ccache dir
|
|
||||||
uses: https://code.forgejo.org/actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: .ccache
|
|
||||||
key: ${{ runner.os }}-${{ github.sha }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-
|
|
||||||
- name: Setup ccache
|
|
||||||
run: |
|
|
||||||
ccache --set-config=cache_dir="${{ github.workspace }}/.ccache"
|
|
||||||
ccache --set-config=compression=true
|
|
||||||
ccache --set-config=compression_level=6
|
|
||||||
ccache -M 4G
|
|
||||||
ccache -z
|
|
||||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
|
||||||
echo "$PATH" >> "$GITHUB_PATH"
|
|
||||||
- run: |
|
- run: |
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.80.1
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.80.1
|
||||||
source "$HOME/.cargo/env"
|
source "$HOME/.cargo/env"
|
||||||
echo "$PATH" >> "$GITHUB_PATH"
|
echo "$PATH" >> "$GITHUB_PATH"
|
||||||
|
- uses: https://code.forgejo.org/actions/cache/restore@v3
|
||||||
|
with:
|
||||||
|
path: deps
|
||||||
|
key: ${{ needs.deps.outputs.cache-primary-key }}
|
||||||
|
fail-on-cache-miss: true
|
||||||
- run: |
|
- run: |
|
||||||
git clone --depth=1 --branch=yosys-0.45 https://github.com/YosysHQ/sby.git
|
make -C deps/z3/build install
|
||||||
make -C sby install
|
make -C deps/sby install
|
||||||
- run: |
|
make -C deps/yosys install
|
||||||
git clone --depth=1 --recursive --branch=0.45 https://github.com/YosysHQ/yosys.git
|
export PATH="$(realpath deps/firtool/bin):$PATH"
|
||||||
make -C yosys -j2
|
|
||||||
make -C yosys install
|
|
||||||
- run: |
|
|
||||||
wget -O firrtl.tar.gz https://github.com/llvm/circt/releases/download/firtool-1.86.0/firrtl-bin-linux-x64.tar.gz
|
|
||||||
sha256sum -c - <<<'bf6f4ab18ae76f135c944efbd81e25391c31c1bd0617c58ab0592640abefee14 firrtl.tar.gz'
|
|
||||||
tar -xvaf firrtl.tar.gz
|
|
||||||
export PATH="$(realpath firtool-1.86.0/bin):$PATH"
|
|
||||||
echo "$PATH" >> "$GITHUB_PATH"
|
echo "$PATH" >> "$GITHUB_PATH"
|
||||||
- uses: https://github.com/Swatinem/rust-cache@v2
|
- uses: https://github.com/Swatinem/rust-cache@v2
|
||||||
with:
|
with:
|
||||||
|
|
Loading…
Reference in a new issue