Vmeda.Online/.github/scripts/update_behat_plugin.sh

69 lines
2.3 KiB
Bash

#!/bin/bash
source "./.github/scripts/functions.sh"
if [ -z $GIT_TOKEN ] || [ -z $BEHAT_PLUGIN_GITHUB_REPOSITORY ] || [ -z $BEHAT_PLUGIN_BRANCH ]; then
print_error "Env vars not correctly defined"
exit 1
fi
if [[ $BEHAT_PLUGIN_BRANCH != $GITHUB_REF_NAME ]]; then
echo "Script disabled for this branch"
exit 0
fi
# Clone plugin repository.
print_title "Cloning Behat plugin repository..."
git clone https://$GIT_TOKEN@github.com/$BEHAT_PLUGIN_GITHUB_REPOSITORY.git tmp/local_moodleappbehat -b integration
pluginversion=$(cat tmp/local_moodleappbehat/version.php | grep "\$plugin->version" | grep -o -E "[0-9]+")
# Auto-generate plugin.
print_title "Building Behat plugin..."
if [ -z $BEHAT_PLUGIN_EXCLUDE_FEATURES ]; then
scripts/build-behat-plugin.js tmp/local_moodleappbehat
else
scripts/build-behat-plugin.js tmp/local_moodleappbehat --exclude-features
fi
notify_on_error_exit "Unsuccessful build, stopping..."
# Check if there are any changes (ignoring plugin version).
print_title "Checking changes..."
newpluginversion=$(cat tmp/local_moodleappbehat/version.php | grep "\$plugin->version" | grep -o -E "[0-9]+")
sed -i s/\$plugin-\>version\ =\ [0-9]\\+\;/\$plugin-\>version\ =\ $pluginversion\;/ tmp/local_moodleappbehat/version.php
if [[ -z `git -C tmp/local_moodleappbehat/ status --short` ]]; then
echo "There weren't any changes to apply!"
exit
fi
if [[ $pluginversion -eq $newpluginversion ]]; then
((newpluginversion++))
fi
sed -i s/\$plugin-\>version\ =\ [0-9]\\+\;/\$plugin-\>version\ =\ $newpluginversion\;/ tmp/local_moodleappbehat/version.php
# Apply new changes
print_title "Applying changes to repository..."
diff=`get_behat_plugin_changes_diff`
cd tmp/local_moodleappbehat
# Set up Github Actions bot user
# See https://github.community/t/github-actions-bot-email-address/17204/6
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add .
git commit -m "[auto-generated] Update plugin files
Check out the commits that caused these changes: https://github.com/$GITHUB_REPOSITORY/compare/$diff
"
notify_on_error_exit "Unsuccessful commit, stopping..."
echo "Pushing changes..."
git push
notify_on_error_exit "Unsuccessful push, stopping..."
echo "Behat plugin updated!"