Change abichecker generation to use gz-collection.yaml #568
Workflow file for this run
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: CI | |
# base_ref / head_reaf are only available in PRs | |
on: [pull_request] | |
jobs: | |
dsl_ci: | |
runs-on: ubuntu-latest | |
name: Diff for DSL code | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Idenfify files changed in this PR | |
id: files | |
run: | | |
git fetch origin ${{ github.ref }} | |
git diff --name-only origin/${{ github.base_ref }}...FETCH_HEAD | |
echo "changed-files=$(git diff --name-only origin/${{ github.base_ref }}...FETCH_HEAD| 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 | |
sudo chown -R ${USER} /var/lib/jenkins | |
cd jenkins-scripts/dsl | |
WRITE_JOB_LOG=1 java -jar tools/jobdsl.jar *.dsl | |
- name: Checks for abichecker jobs | |
if: steps.dsl_check.outputs.run_job == 'true' | |
run: | | |
cd jenkins-scripts/dsl | |
main=$(grep '<branch>main</branch>' *-abichecker-*.xml) | |
if [[ -n ${main} ]]; then | |
echo "Found a main branch in an abichecker job:" | |
echo "${main}" | |
echo "Main branches are not target of abichecking. Fix the code." | |
exit 1 | |
fi | |
# Filter out the previous auto jobs | |
mkdir /tmp/abichecker_filtered_jobs | |
cp *-abichecker-*.xml /tmp/abichecker_filtered_jobs | |
cd /tmp/abichecker_filtered_jobs | |
rm *ubuntu_auto*.xml | |
repeated=$(grep '\<branch>' *-abichecker-*.xml | awk '{ print $2 }' | sort | uniq -d) | |
if [[ -n ${repeated} ]]; then | |
echo "Found a duplicate in an abichecker branch:" | |
echo "${repeated}" | |
echo "please exclude one of the versions in the yaml file to reduce the server workload" | |
exit 1 | |
fi | |
- name: Export XML generated configuration for diff | |
if: steps.dsl_check.outputs.run_job == 'true' | |
run: | | |
cd jenkins-scripts/dsl | |
# export files for later diff | |
mkdir /tmp/pr_xml_configuration && mkdir /tmp/pr_log_generated/ | |
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 | |
cd jenkins-scripts/dsl | |
WRITE_JOB_LOG=1 java -jar tools/jobdsl.jar *.dsl | |
mkdir /tmp/current_xml_configuration && mkdir /tmp/current_log_generated/ | |
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 '.*<id>dashboard_portlet_.*</id>.*' /tmp/current_xml_configuration /tmp/pr_xml_configuration > /tmp/xml_config_files_changed.diff || true | |
diff -ur -I '.*<id>dashboard_portlet_.*</id>.*' /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 | |
path: /tmp/log_content_changed.diff |