Skip to content

Commit

Permalink
remove comment step and second checkout
Browse files Browse the repository at this point in the history
  • Loading branch information
dariusptrs committed Feb 6, 2025
1 parent 6a92f23 commit 3959971
Showing 1 changed file with 34 additions and 44 deletions.
78 changes: 34 additions & 44 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ 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
- 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
Expand All @@ -29,7 +29,7 @@ jobs:
- 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"

Expand All @@ -38,80 +38,70 @@ jobs:
run: |
cmake --version
pdflatex --version
# Create and enter the build directory.
mkdir -p build && cd build
cmake ..
make
# Prepare the "original" version from the default branch.
- name: Checkout default branch for diff
# Fetch default branch
- name: Fetch default branch
run: |
git fetch origin ${{ github.event.repository.default_branch }}
git worktree add original origin/${{ github.event.repository.default_branch }}
# Run latexdiff on each document.
# 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" ] && [ -f original/"$filename.tex" ]; then
echo "Running latexdiff on $filename.tex"
# Generate a diff TeX file.
latexdiff original/"$filename.tex" "$filename.tex" > diff/"${filename}_diff.tex"
# Compile the diff file to produce a diff PDF.
pdflatex -output-directory=diff diff/"${filename}_diff.tex"
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: Corresponding .tex file not found in one of the branches."
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-artifact
name: build
path: build/*.pdf

# Upload the diff PDFs produced by latexdiff.
- name: Upload latexdiff artifact
uses: actions/upload-artifact@v4
with:
name: latexdiff-artifact
name: latexdiff
path: diff/*.pdf

- name: Comment on PR with artifact link
if: ${{ github.event_name == 'pull_request' }}
continue-on-error: true
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const pr_number = context.payload.pull_request.number
const run_id = process.env.GITHUB_RUN_ID
const run_url = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${run_id}`
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr_number,
body: `:robot: The artifacts from this build are available [here](${run_url}).`
})
- 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]
Expand Down

0 comments on commit 3959971

Please sign in to comment.