Add workflow to auto-update submodules
parent
f3dd38a038
commit
fa475949f4
@ -0,0 +1,27 @@
|
||||
name: Update submodules
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 7 * * *'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
branch:
|
||||
description: DFHack branch to update
|
||||
required: false
|
||||
default: develop
|
||||
|
||||
jobs:
|
||||
run:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clone DFHack
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ github.event.inputs.branch }}
|
||||
submodules: true
|
||||
- name: Update submodules
|
||||
run: |
|
||||
if bash -x ci/update-submodules.bash; then
|
||||
git push
|
||||
fi
|
@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
message_file=.git/COMMIT_EDITMSG
|
||||
|
||||
get_git_root() {
|
||||
git rev-parse --show-toplevel
|
||||
}
|
||||
|
||||
write_msg() {
|
||||
echo "$@" >> "${message_file}"
|
||||
}
|
||||
|
||||
git_root="$(get_git_root)"
|
||||
cd "${git_root}"
|
||||
rm -f "${message_file}"
|
||||
write_msg "Auto-update submodules"
|
||||
write_msg ""
|
||||
|
||||
cat ci/update-submodules.manifest | while read path branch; do
|
||||
cd "${git_root}/${path}"
|
||||
test "${git_root}" != "$(get_git_root)"
|
||||
git checkout "${branch}"
|
||||
git pull
|
||||
cd "${git_root}"
|
||||
if ! git diff --quiet --ignore-submodules=dirty -- "${path}"; then
|
||||
git add "${path}"
|
||||
write_msg "${path}: ${branch}"
|
||||
fi
|
||||
done
|
||||
|
||||
if ! git diff --exit-code --cached; then
|
||||
git commit --file "${message_file}" --no-edit
|
||||
exit 0
|
||||
else
|
||||
exit 1
|
||||
fi
|
@ -0,0 +1,6 @@
|
||||
library/xml master
|
||||
scripts master
|
||||
plugins/stonesense master
|
||||
depends/libzip dfhack
|
||||
depends/libexpat dfhack
|
||||
depends/xlsxio dfhack
|
Loading…
Reference in New Issue