remove comment step and second checkout #81
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |