diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 7e7ccbb9b..41c07b533 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -1,7 +1,7 @@
name: CI
# base_ref / head_reaf are only available in PRs
-on: [pull_request, push]
+on: [pull_request]
jobs:
dsl_ci:
@@ -12,18 +12,39 @@ jobs:
uses: actions/checkout@v3
with:
fetch-depth: 0
+ - name: Idenfify files changed in this PR
+ id: files
+ run: |
+ git diff --name-only origin/${{ github.base_ref }}...origin/${{ github.head_ref }}
+ echo "changed-files=$(git diff --name-only origin/${{ github.base_ref }}...origin/${{ github.head_ref }}| tr '\n' ' ')" >> $GITHUB_OUTPUT
+ - name: Run testing on changed config files
+ id: dsl_check
+ run: |
+ for changed_file in ${{ steps.files.outputs.changed-files }}; do
+ if [[ ${changed_file} != ${changed_file/dsl\/*} ]]; then
+ echo "+ Detected at leat one config file: ${changed_file}."
+ echo "run_job=true" >> $GITHUB_OUTPUT
+ break
+ else
+ echo "run_job=false" >> $GITHUB_OUTPUT
+ fi
+ done
- name: Checkout
+ if: steps.dsl_check.outputs.run_job == 'true'
uses: actions/checkout@v3
with:
fetch-depth: 2
- uses: actions/setup-java@v3
+ if: steps.dsl_check.outputs.run_job == 'true'
with:
distribution: 'temurin'
java-version: '11'
- name: Download and setup job dsl jar
+ if: steps.dsl_check.outputs.run_job == 'true'
run: ./jenkins-scripts/dsl/tools/setup_local_generation.bash
- name: Generate all DSL files
+ if: steps.dsl_check.outputs.run_job == 'true'
run: |
# simulate token for brew_release
sudo mkdir -p /var/lib/jenkins/ && sudo touch /var/lib/jenkins/remote_token
@@ -35,6 +56,7 @@ jobs:
mv *.xml /tmp/pr_xml_configuration/
mv *.txt /tmp/pr_log_generated/
- name: Generate master DSL files
+ if: steps.dsl_check.outputs.run_job == 'true'
run: |
git clean -f -e jobdsl.jar
git checkout master
@@ -44,22 +66,26 @@ jobs:
mv *.xml /tmp/current_xml_configuration/
mv *.txt /tmp/current_log_generated/ || true
- name: Generating diffs
+ if: steps.dsl_check.outputs.run_job == 'true'
run: |
# somehow the Jenkins views changed the portlet_ id on every run.
diff -qr -I '.*dashboard_portlet_.*.*' /tmp/current_xml_configuration /tmp/pr_xml_configuration > /tmp/xml_config_files_changed.diff || true
diff -ur -I '.*dashboard_portlet_.*.*' /tmp/current_xml_configuration /tmp/pr_xml_configuration > /tmp/xml_config_content_changed.diff || true
diff -ur /tmp/current_log_generated /tmp/pr_log_generated > /tmp/log_content_changed.diff || true
- name: Archive files changes
+ if: steps.dsl_check.outputs.run_job == 'true'
uses: actions/upload-artifact@v3
with:
name: xml_config_files_changed
path: /tmp/xml_config_files_changed.diff
- name: Archive content changes
+ if: steps.dsl_check.outputs.run_job == 'true'
uses: actions/upload-artifact@v3
with:
name: xml_config_content_changed
path: /tmp/xml_config_content_changed.diff
- name: Archive log changes
+ if: steps.dsl_check.outputs.run_job == 'true'
uses: actions/upload-artifact@v3
with:
name: log_content_changed