Delete .idea directory #5
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: 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 | |
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 |