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