-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
remove comment step and second checkout
- Loading branch information
1 parent
6a92f23
commit 3959971
Showing
1 changed file
with
34 additions
and
44 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 | ||
|
@@ -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" | ||
|
||
|
@@ -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] | ||
|