56 lines
2.0 KiB
YAML
56 lines
2.0 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
simple_build_linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- name: Get Dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
# tcl/tk + cairo for the build; texlive (latex + dvips) so the default
|
|
# "make" also regenerates the PostScript documentation. Docs are
|
|
# best-effort — a missing texlive package just falls back to the
|
|
# pre-built PostScript, it does not fail the build.
|
|
sudo apt-get install -y tcl-dev tk-dev libcairo-dev \
|
|
texlive-latex-base texlive-latex-recommended texlive-fonts-recommended
|
|
- name: Build
|
|
run: |
|
|
./configure
|
|
make prepare
|
|
make -j$(nproc)
|
|
- name: Build Tcl auto-load modules
|
|
# These per-module Tcl shared libraries are real products but are not
|
|
# part of the default target (their modules are not in PROGRAMS), so
|
|
# build them explicitly to keep them from bit-rotting.
|
|
run: |
|
|
for m in lef plot router ext2spice ext2sim; do
|
|
make -C "$m" tcl-main
|
|
done
|
|
|
|
standard_build_linux:
|
|
# Non-Tcl "standard" configuration: native magic binary + bundled GNU
|
|
# readline. Distinct code paths (MAGIC_WRAPPER off, bundled readline) that
|
|
# the Tcl build above does not exercise.
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- name: Get Dependencies
|
|
# X11 + cairo for graphics; ncurses for the bundled readline's configure;
|
|
# texlive for the docs. NB: package set not validated on the runner --
|
|
# adjust if the build cannot find a library.
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libx11-dev libcairo-dev libncurses-dev \
|
|
texlive-latex-base texlive-latex-recommended texlive-fonts-recommended
|
|
- name: Build (non-Tcl / standard)
|
|
run: |
|
|
./configure --without-tcl --without-opengl
|
|
make prepare
|
|
make -j$(nproc)
|