Skip to content

Investigate and improve stream reading and writing #309

Investigate and improve stream reading and writing

Investigate and improve stream reading and writing #309

Workflow file for this run

name: Main-CI
on:
pull_request:
push:
branches: [main]
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-14, windows-2022]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout current branch (full)
uses: actions/checkout@v7
- name: Setup (Linux)
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y check doxygen
- name: Setup (Mac)
if: startsWith(matrix.os, 'macos')
run: |
brew install check doxygen
- name: Setup (Windows)
if: startsWith(matrix.os, 'windows-2022')
uses: microsoft/setup-msbuild@v3
- name: Run tests ${{matrix.os}}
if: startsWith(matrix.os, 'windows') == false
run: |
cd build/gcc
echo "Running build..."
make TARGET=pc clean all check examples utils doc
cd ../..
scripts/run-examples
- name: Run tests ${{matrix.os}}
if: (startsWith(matrix.os, 'windows-2022'))
run: |
vcpkg integrate install
echo "Running build..."
msbuild.exe build\vs2022\exip.sln -property:Configuration=Debug
scripts\run-unit-tests.bat
scripts\run-examples.bat
- name: Generate User Documentation
if: startsWith(matrix.os, 'ubuntu') && (github.ref == 'refs/heads/main')
run: |
# Download Tectonic (musl version is statically linked, no glibc dependency)
wget https://github.com/tectonic-typesetting/tectonic/releases/download/tectonic%400.16.9/tectonic-0.16.9-x86_64-unknown-linux-musl.tar.gz
tar -xzf tectonic-0.16.9-x86_64-unknown-linux-musl.tar.gz
sudo mv tectonic /usr/local/bin/
# Generate user PDF
scripts/create-user-doc.sh
- name: Prepare Pages Content
if: startsWith(matrix.os, 'ubuntu') && (github.ref == 'refs/heads/main')
run: |
# Make the dirs
mkdir -p staging/user staging/doxygen
# Copy your .nojekyll from root to staging
cp .nojekyll staging/
# Copy your new 'docs' content into staging
cp -r docs/www/* staging/
cp -r docs/user/* staging/user
cp -r docs/dev/doxygen/html/* staging/doxygen
- name: Upload Pages Artifact
if: startsWith(matrix.os, 'ubuntu') && (github.ref == 'refs/heads/main')
uses: actions/upload-pages-artifact@v5
with:
path: staging/
deploy:
needs: build
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-22.04
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5