Skip to content

Update test.md

Update test.md #9

name: conditional_convert_via_pandoc
#
# A script to check for changed and added .md files in content/ and convert those with pandoc (except for _index.md)
#
# Thanks to Gérald Barré aka. meziantou for the basic template of the condition check
# Thanks as well as to Azeem, mb21, Benjamin W., KamilCuk & Teemu Risikko over at stackoverlow.com
# Written by Marcel Kaiser
#
# published: 2024-10-29
# last edit: 2024-11-18
#
on:
push:
branches:
- 'main' # Do the work exclusively for the branch deploying the website
- 'workflow-test' # This is currently our sandbox to test the workflow.
jobs:
# Seperate jobs to be able to possibly use condition_check_files for other tasks as well
condition_check_files:
runs-on: 'ubuntu-22.04'
outputs:
bool_files_changed: ${{ steps.check_file_changed.outputs.bool_files_changed }}
list_changed_files: ${{ steps.check_file_changed.outputs.list_changed_files }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- shell: pwsh
id: check_file_changed
run: |
# Look only for changed files (A - added, M - modified) and return their path+name (the specific changes are irrelevant)
$diff=git diff --name-only --diff-filter=AM "HEAD^" HEAD
# Filter the files under content/ with the .md extension excluding the Hugo associated _index.md files
$FilesDiff=$diff | Where-Object { $_ -match 'content/' -and $_ -match '.md$' -and -not ($_ -match '_index.md') }
$HasDiff=$FilesDiff.Length -gt 0
# Set the output named "bool_files_changed"
echo "bool_files_changed=$HasDiff" >> $env:GITHUB_OUTPUT
echo "list_changed_files=$FilesDiff" >> $env:GITHUB_OUTPUT
# Run the job only with 'bool_files_changed' equals 'true'
conditional_pandoc:
runs-on: 'ubuntu-22.04'
needs: [ condition_check_files ]
if: needs.condition_check_files.outputs.bool_files_changed == 'true'
env:
list_changed_files: ${{ needs.condition_check_files.outputs.list_changed_files }}
steps:
- uses: actions/checkout@v4 # In order to find the script pandoc.sh
with:
fetch-depth: 2
- uses: pandoc/actions/setup@v1
with:
version: 3.5
- uses: teatimeguest/setup-texlive-action@v3 # To convert to pdf (from latex)
with:
package-file: |
.github/workflows/pandoc_texlive_packages.txt
- name: Run Pandoc
run: |
echo "$list_changed_files"
bash ./pandoc.sh "$list_changed_files"
# - name: Commit files # transfer the new files into the repository
# run: |
# git config --local user.name "GH_Action_Bot"
# git add ./content
# git commit -m "GH Action: Pandoc | New output for changed files"
# git push -f origin main
- name: Save artifacts # Instead of 'Commit files'. Saves the files as .zip
uses: actions/upload-artifact@v4
with:
name: pandoc-artifact
path: content/