test git action #59
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 | |
# Written by Marcel Kaiser | |
# | |
# published: 2024-10-29 | |
# last edit: 2024-11-16 | |
# | |
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' | |
# Declare outputs for next jobs | |
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 names (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' | |
# - name: install_pandoc | |
# uses: pandoc/actions/setup@v1 | |
# with: | |
# version: 3.5 | |
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 | |
with: | |
fetch-depth: 2 | |
- name: run_pandoc | |
run: | | |
echo "$list_changed_files" | |
bash ./pandoc.sh "$list_changed_files" | |
- uses: docker://pandoc/latex:3.5 |