Skip to content

remove comment step and second checkout #81

remove comment step and second checkout

remove comment step and second checkout #81

Workflow file for this run

name: CI
on:
push:
pull_request:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.12.2'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r scripts/requirements.txt
- name: Run pytest
run: pytest
build:
runs-on: ubuntu-latest
container: makeappdev/uselatex:latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure Git safe directory with GITHUB_WORKSPACE
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
# Build documents via CMake
- name: Build documents
run: |
cmake --version
pdflatex --version
mkdir -p build && cd build
cmake ..
make
# Fetch default branch
- name: Fetch default branch
run: |
git fetch origin ${{ github.event.repository.default_branch }}
# Run latexdiff on each document by retrieving the original .tex file from the default branch.
- name: Run latexdiff on documents
run: |
# Install latexdiff if not present
apt-get install -y latexdiff
# Create a directory to hold diff outputs.
mkdir -p diff
mkdir -p temp
# Loop over each PDF in the build folder.
for pdf in build/*.pdf; do
# Extract the basename (e.g. "document" from "document.pdf")
filename=$(basename "$pdf" .pdf)
if [ -f "$filename.tex" ]; then
# Check if the file exists in the default branch using git cat-file.
if git cat-file -e origin/${{ github.event.repository.default_branch }}:"$filename.tex" 2>/dev/null; then
echo "Running latexdiff on $filename.tex"
# Retrieve the file from the default branch directly into a temporary file.
git show origin/${{ github.event.repository.default_branch }}:"$filename.tex" > temp/"$filename"_old.tex
# Generate a diff TeX file using the original (default branch) and current file.
latexdiff temp/"$filename"_old.tex "$filename.tex" > diff/"${filename}_diff.tex"
# Compile the diff file to produce a diff PDF.
pdflatex -output-directory=diff diff/"${filename}_diff.tex"
else
echo "Skipping $filename: $filename.tex not found in the default branch."
fi
else
echo "Skipping $filename: $filename.tex not found in the current branch."
fi
done
# Upload the PDFs produced by build.
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build
path: build/*.pdf
# Upload the diff PDFs produced by latexdiff.
- name: Upload latexdiff artifact
uses: actions/upload-artifact@v4
with:
name: latexdiff
path: diff/*.pdf
- name: Prepare Deployment
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main'
run: |
mkdir -p export
echo "# This branch is for deployment only" >> export/README.md
cp build/*.pdf export
cp build/git.id export
- name: Deploy
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main'
uses: JamesIves/[email protected]
with:
branch: gh-pages
folder: export
single-commit: true
silent: true