name: Check Pull Request for QA Issues on: pull_request: push: jobs: check_release_notes: runs-on: ubuntu-latest steps: - name: Checkout pull request branch uses: actions/checkout@v4 with: fetch-depth: 2 - name: Check for changes in release notes run: | if git diff --name-only ${{ github.event.pull_request.base.sha }} | grep -q 'code/web/release_notes/'; then echo "Release notes have been modified" else echo "::warning::Release notes not modified" fi check_tabs_vs_spaces: runs-on: ubuntu-latest steps: - name: Checkout pull request branch uses: actions/checkout@v4 with: fetch-depth: 2 - name: Check for spaces instead of tabs run: | # Find files that are modified in the pull request MODIFIED_FILES=$(git diff --name-only ${{ github.event.pull_request.base.sha }} | grep -v 'code/aspen_app') # Loop through each file and check for spaces used instead of tabs EXIT_CODE=0 declare -A RESULTS for file in $MODIFIED_FILES; do echo "Found modified file: $file"; if [[ $file == *.php || $file == *.js || $file == *.java ]]; then DIFF=$(git diff ${{ github.event.pull_request.base.sha }} -- $file) #echo "DIFF: $DIFF" while IFS= read -r RAW_LINE; do if [[ $RAW_LINE =~ ^\+ ]]; then LINE=$(echo -e "$RAW_LINE" | sed 's/\t/_TAB_/g') if [[ $LINE =~ ^\+(_TAB_)*[[:space:]][[:space:]]+ ]]; then echo "Bad Line: $RAW_LINE" RESULTS[$file]=1 EXIT_CODE=1 fi fi done <<< "$DIFF" fi done if [ $EXIT_CODE -eq 1 ]; then echo "FILES CONTAINING SPACES INSTEAD OF TABS:" for key in "${!RESULTS[@]}"; do echo "$key" done else echo "NO SPACES FOUND!"; fi exit $EXIT_CODE check_create_site_for_docker: runs-on: ubuntu-latest steps: - name: Checkout pull request branch uses: actions/checkout@v4 with: fetch-depth: 2 - name: Check for changes in site creation that may necessitate a change to the Docker file run: | LINES_CHANGED=$(git diff ${{ github.event.pull_request.base.sha }} -- install/createSiteTemplate.ini | wc -l) echo "LINES CHANGED: $LINES_CHANGED" if [[ $LINES_CHANGED -gt 0 ]]; then echo "Changes to createSiteTemplate.ini have been detected" if git diff --name-only git diff --name-only ${{ github.event.pull_request.base.sha }} | grep docker; then echo "Changes to docker files has also been detected" else echo "No changes to docker files have been detected" exit 1 fi else echo "No changes to Aspen or Koha keys have been detected"; fi