#!/bin/bash # # Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved. # # SPDX-License-Identifier: MIT # gen_jenkins_trigger() { if [ -s $MANIFEST ]; then echo "======== Generate Jenkins Trigger ========" [ -z "$JENKINS_TRIGGER" ] && JENKINS_TRIGGER="$OUTPUT_DIR/jenkins_trigger.txt" rm -f $JENKINS_TRIGGER name_pattern="name=" branch_pattern="dest-branch=" while IFS= read -r line do keyline=`echo "$line" | grep 'name=.* path='` unset repo_name unset repo_branch for keyword in $keyline; do [[ $keyword == $name_pattern* ]] && repo_name=`echo ${keyword#*${name_pattern}} | sed 's/\"//g'` [[ $keyword == $branch_pattern* ]] && repo_branch=`echo ${keyword#*${branch_pattern}} | sed -n 's/.*"\([^"]*\)".*/\1/p'` done if [ -n "$repo_name" ]; then echo "p=$repo_name" >> $JENKINS_TRIGGER fi if [ -n "$repo_branch" ]; then echo "b=$repo_branch" >> $JENKINS_TRIGGER fi done < $MANIFEST echo -e "======== Done ========\n" fi } [ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output [ ! -d $OUTPUT_DIR ] && mkdir -p $OUTPUT_DIR [ -z "$MANIFEST" ] && MANIFEST="$OUTPUT_DIR/manifest.xml" [ ! -f $MANIFEST ] && repo manifest -r -o $MANIFEST [ -z "$LAST_MANIFEST" ] && LAST_MANIFEST="$OUTPUT_DIR/last_manifest.xml" [ -z "$DIFF_MANIFEST" ] && DIFF_MANIFEST="$OUTPUT_DIR/diff_manifest.xml" if [ ! -f $LAST_MANIFEST ] || [ -f $LAST_BUILD_FAILURE ]; then gen_jenkins_trigger elif [[ "$SUBMIT_TYPE" == "release" ]]; then gen_jenkins_trigger else comm -3 <(sort $LAST_MANIFEST) <(sort $MANIFEST) > $DIFF_MANIFEST [ -s $DIFF_MANIFEST ] && gen_jenkins_trigger fi