Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 41 additions & 59 deletions .github/workflows/build-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,95 +10,77 @@ jobs:
build:

runs-on: ubuntu-latest
# pandoc/latex ships pandoc and a minimal TeX Live, which is much faster
# to pull than installing texlive-full from apt
container: pandoc/latex:latest-ubuntu

steps:
- uses: actions/checkout@master
with:
repository: matusnovak/doxybook2
path: ./doxy
- name: Download Japanese fonts
run: curl -LO https://github.com/googlefonts/noto-cjk/blob/main/Sans/OTF/Japanese/NotoSansCJKjp-Black.otf && curl -LO https://github.com/googlefonts/noto-cjk/blob/main/Sans/OTF/Japanese/NotoSansCJKjp-Bold.otf && curl -LO https://github.com/googlefonts/noto-cjk/blob/main/Sans/OTF/Japanese/NotoSansCJKjp-DemiLight.otf && curl -LO https://github.com/googlefonts/noto-cjk/blob/main/Sans/OTF/Japanese/NotoSansCJKjp-Light.otf && curl -LO https://github.com/googlefonts/noto-cjk/blob/main/Sans/OTF/Japanese/NotoSansCJKjp-Medium.otf && curl -LO https://github.com/googlefonts/noto-cjk/blob/main/Sans/OTF/Japanese/NotoSansCJKjp-Regular.otf && curl -LO https://github.com/googlefonts/noto-cjk/blob/main/Sans/OTF/Japanese/NotoSansCJKjp-Thin.otf
- name: Install Japanese fonts
run: sudo mkdir -p /usr/local/share/fonts; sudo cp NotoSans* /usr/local/share/fonts/. && sudo fc-cache -f -v
- name: wget vcpkg
working-directory: ./doxy
run: wget -O vcpkg.tar.gz https://github.com/microsoft/vcpkg/archive/master.tar.gz
- name: mkdir vcpkg
working-directory: ./doxy
run: sudo mkdir /opt/vcpkg
- name: tar vcpkg
working-directory: ./doxy
run: sudo tar xf vcpkg.tar.gz --strip-components=1 -C /opt/vcpkg
- name: build vcpkg
working-directory: ./doxy
run: sudo /opt/vcpkg/bootstrap-vcpkg.sh
- name: Doxybook depenecies
working-directory: ./doxy
run: vcpkg install --triplet x64-linux $(cat vcpkg.txt)
- name: doxy mkdir build
working-directory: ./doxy
run: mkdir build
- name: doxy cmake setup
working-directory: ./doxy
run: cmake -B ./build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE=/usr/local/share/vcpkg/scripts/buildsystems/vcpkg.cmake .
- name: doxy cmake
working-directory: ./doxy
run: cmake --build ./build --config MinSizeRel
- name: doxybook2 add to path
working-directory: ./doxy
run: cp build/src/DoxybookCli/doxybook2 ../..
- uses: actions/checkout@master
- name: Update apt sources
run: sudo apt-get update
# git must be present before checkout so it makes a real clone that the
# submodule and wolfTPM/wolfCOSE make rules can use
- name: Install Dependencies
run: sudo apt install pandoc texlive-full mkdocs doxygen
run: |
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
git make patch unzip wget ca-certificates mkdocs doxygen \
fonts-noto-core fonts-noto-mono
git config --global --add safe.directory '*'
- name: Install LaTeX packages
run: |
tlmgr update --self
tlmgr install titlesec tocloft fvextra listings fancyhdr
- name: Install doxybook2
run: |
wget -q -O /tmp/doxybook2.zip https://github.com/matusnovak/doxybook2/releases/download/v1.5.0/doxybook2-linux-amd64-v1.5.0.zip
unzip -q /tmp/doxybook2.zip -d /tmp/doxybook2
cp /tmp/doxybook2/bin/doxybook2 /usr/local/bin/
- uses: actions/checkout@v4
- name: wolfssl html
run: cd wolfSSL && export PATH=$PATH:"/home/runner/work/documentation" && make html
run: cd wolfSSL && make html
- name: wolfssl pdf
run: cd wolfSSL && export PATH=$PATH:"/home/runner/work/documentation" && make pdf
run: cd wolfSSL && make pdf
- name: wolfssh html
run: cd wolfSSH && export PATH=$PATH:"/home/runner/work/documentation" && make html
run: cd wolfSSH && make html
- name: wolfssh pdf
run: cd wolfSSH && export PATH=$PATH:"/home/runner/work/documentation" && make pdf
run: cd wolfSSH && make pdf
- name: Pin wolfTPM source for this build
run: |
ref=$(git ls-remote https://github.com/wolfSSL/wolfTPM.git refs/heads/master | cut -f1)
test -n "$ref"
echo "WOLFTPM_REF=$ref" >> "$GITHUB_ENV"
- name: wolftpm html and pdf
run: cd wolfTPM && export PATH=$PATH:"/home/runner/work/documentation" && make
run: cd wolfTPM && make
- name: wolfmqtt html
run: cd wolfMQTT && export PATH=$PATH:"/home/runner/work/documentation" && make html
run: cd wolfMQTT && make html
- name: wolfmqtt pdf
run: cd wolfMQTT && export PATH=$PATH:"/home/runner/work/documentation" && make pdf
run: cd wolfMQTT && make pdf
- name: wolfBoot html
run: cd wolfBoot && export PATH=$PATH:"/home/runner/work/documentation" && make html
run: cd wolfBoot && make html
- name: wolfBoot pdf
run: cd wolfBoot && export PATH=$PATH:"/home/runner/work/documentation" && make pdf
run: cd wolfBoot && make pdf
- name: wolfSentry html
run: cd wolfSentry && export PATH=$PATH:"/home/runner/work/documentation" && make html
run: cd wolfSentry && make html
- name: wolfSentry pdf
run: cd wolfSentry && export PATH=$PATH:"/home/runner/work/documentation" && make pdf
run: cd wolfSentry && make pdf
- name: wolfclu html
run: cd wolfCLU && export PATH=$PATH:"/home/runner/work/documentation" && make html
run: cd wolfCLU && make html
- name: wolfclu pdf
run: cd wolfCLU && export PATH=$PATH:"/home/runner/work/documentation" && make pdf
run: cd wolfCLU && make pdf
- name: wolfssl-jni html
run: cd wolfSSL-JNI && export PATH=$PATH:"/home/runner/work/documentation" && make html
run: cd wolfSSL-JNI && make html
- name: wolfssl-jni pdf
run: cd wolfSSL-JNI && export PATH=$PATH:"/home/runner/work/documentation" && make pdf
run: cd wolfSSL-JNI && make pdf
- name: wolfcrypt-jni html
run: cd wolfCrypt-JNI && export PATH=$PATH:"/home/runner/work/documentation" && make html
run: cd wolfCrypt-JNI && make html
- name: wolfcrypt-jni pdf
run: cd wolfCrypt-JNI && export PATH=$PATH:"/home/runner/work/documentation" && make pdf
run: cd wolfCrypt-JNI && make pdf
- name: wolfHSM html
run: cd wolfHSM && export PATH=$PATH:"/home/runner/work/documentation" && make html
run: cd wolfHSM && make html
- name: wolfHSM pdf
run: cd wolfHSM && export PATH=$PATH:"/home/runner/work/documentation" && make pdf
run: cd wolfHSM && make pdf
- name: Pin wolfCOSE source for this build
run: |
ref=$(git ls-remote https://github.com/wolfSSL/wolfCOSE.git refs/heads/main | cut -f1)
test -n "$ref"
echo "WOLFCOSE_REF=$ref" >> "$GITHUB_ENV"
- name: wolfCOSE html and pdf
run: cd wolfCOSE && export PATH=$PATH:"/home/runner/work/documentation" && make
run: cd wolfCOSE && make
6 changes: 4 additions & 2 deletions .github/workflows/docker-build-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
# Each manual is a separate docker build, so run them in parallel and
# keep each one's output together in the log
- name: Docker Make all
run: sudo make
run: sudo make -j$(nproc) --output-sync
23 changes: 18 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
FROM texlive/texlive:latest AS builder
# Doxybook2 is built in its own stage so BuildKit runs it in parallel with
# the builder setup below
FROM pandoc/latex:latest-ubuntu AS doxybook2

WORKDIR /deps

RUN apt-get -y update
# Pandoc and mkdocs are the tools we use
# Doxygen to convert the Doxygen docs
# build-essential and cmake to build the dependencies
# libfmt-dev nlohmann-json3-dev libspdlog-dev and libcxxopts-dev are needed by Doxybook2
# fonts-noto is needed by our PDF generator
RUN apt-get -y install pandoc mkdocs doxygen git build-essential cmake libfmt-dev nlohmann-json3-dev libspdlog-dev libcxxopts-dev fonts-noto
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends git ca-certificates build-essential cmake libfmt-dev nlohmann-json3-dev libspdlog-dev libcxxopts-dev

# Inja is a dep for Doxybook2
RUN git clone --depth=1 https://github.com/pantor/inja
Expand All @@ -18,6 +17,20 @@ RUN git clone https://github.com/dgarske/doxybook2
# Checkout to working version of doxybook2
RUN cd doxybook2 && git checkout master
RUN cd doxybook2 && cmake . && make install

# pandoc/latex provides pandoc and a minimal TeX Live
FROM pandoc/latex:latest-ubuntu AS builder

RUN apt-get -y update
# mkdocs is used for the HTML manuals
# Doxygen to convert the Doxygen docs
# The Noto fonts are needed by our PDF generator
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends mkdocs doxygen git make patch ca-certificates fonts-noto-core fonts-noto-mono fonts-noto-cjk
# The LaTeX packages our PDF headers use beyond the minimal TeX Live
RUN tlmgr update --self && tlmgr install titlesec tocloft fvextra listings fancyhdr
COPY --from=doxybook2 /usr/local/bin/doxybook2 /usr/local/bin/doxybook2
RUN doxybook2 --version

# Copy the source files into Docker, this and any subsequent steps won't be cached
WORKDIR /src/wolfssl
COPY . .
Expand Down
Loading