mirror of
				https://github.com/soybeanjs/soybean-admin.git
				synced 2025-11-04 15:53:43 +08:00 
			
		
		
		
	Update and rename actions-template-sync to sync-from-template
This commit is contained in:
		
							
								
								
									
										2
									
								
								.github/workflows/actions-template-sync
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/actions-template-sync
									
									
									
									
										vendored
									
									
								
							@@ -1,2 +0,0 @@
 | 
				
			|||||||
- name: actions-template-sync
 | 
					 | 
				
			||||||
  uses: AndreasAugustin/actions-template-sync@v0.8.0
 | 
					 | 
				
			||||||
							
								
								
									
										116
									
								
								.github/workflows/sync-from-template
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								.github/workflows/sync-from-template
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,116 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - Run this workflow to pull changes from the template repository.
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					#   - Clone this repository. Check out a branch
 | 
				
			||||||
 | 
					#   - Copy files from the template onto this clone
 | 
				
			||||||
 | 
					#   - Push the branch to this repository
 | 
				
			||||||
 | 
					#   - Create a pull request in this repository
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					name: Sync changes from template
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TODO:
 | 
				
			||||||
 | 
					# - Switch to gh. Check https://github.com/cli/cli/issues/297 for updates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  # Run at 0517 UTC each Friday
 | 
				
			||||||
 | 
					  schedule:
 | 
				
			||||||
 | 
					    - cron: "17 5 * * 5"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Run when this file changes
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    paths:
 | 
				
			||||||
 | 
					      - .github/workflows/sync-from-template.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Run when manually triggered
 | 
				
			||||||
 | 
					  workflow_dispatch:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					env:
 | 
				
			||||||
 | 
					  BASE_BRANCH: main
 | 
				
			||||||
 | 
					  HEAD_BRANCH: chore/sync-from-template
 | 
				
			||||||
 | 
					  GIT_AUTHOR_NAME: ${{ github.repository_owner }}
 | 
				
			||||||
 | 
					  GIT_AUTHOR_EMAIL: ${{ github.repository_owner }}@users.noreply.github.com
 | 
				
			||||||
 | 
					  REPO_TEMPLATE: chhinsras/soybean-admin
 | 
				
			||||||
 | 
					  THIS_REPO: ${{ github.repository }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  sync-from-template:
 | 
				
			||||||
 | 
					    # Do not run on the template repository itself
 | 
				
			||||||
 | 
					    if: github.repository != 'chhinsras/soybean-admin'
 | 
				
			||||||
 | 
					    name: Sync changes from chhinsras/soybean-admin
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    continue-on-error: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      # Clone the template repository
 | 
				
			||||||
 | 
					      - name: Check out template repository
 | 
				
			||||||
 | 
					        uses: actions/checkout@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          repository: ${{ env.REPO_TEMPLATE }}
 | 
				
			||||||
 | 
					          token: ${{ github.token }}
 | 
				
			||||||
 | 
					          path: ${{ env.REPO_TEMPLATE }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Clone the target repository. Check out a branch
 | 
				
			||||||
 | 
					      - name: Check out ${{ github.repository }}
 | 
				
			||||||
 | 
					        uses: actions/checkout@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          repository: ${{ github.repository }}
 | 
				
			||||||
 | 
					          token: ${{ github.token }}
 | 
				
			||||||
 | 
					          path: ${{ github.repository }}
 | 
				
			||||||
 | 
					      - name: Create branch in ${{ env.THIS_REPO }}
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          git -C "${THIS_REPO}" fetch origin "${HEAD_BRANCH}" || true
 | 
				
			||||||
 | 
					          git -C "${THIS_REPO}" branch -a
 | 
				
			||||||
 | 
					          git -C "${THIS_REPO}" checkout -B "${HEAD_BRANCH}" \
 | 
				
			||||||
 | 
					            "remotes/origin/${HEAD_BRANCH}" || \
 | 
				
			||||||
 | 
					          git -C "${THIS_REPO}" checkout -b "${HEAD_BRANCH}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Copy files from the template onto the target clone
 | 
				
			||||||
 | 
					      - name: Copy template contents
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          _files="$(find ${REPO_TEMPLATE} \
 | 
				
			||||||
 | 
					            ! -path "*/.git/*" \
 | 
				
			||||||
 | 
					            ! -path "*/.github/workflows/*" \
 | 
				
			||||||
 | 
					            ! -name ".gitignore" \
 | 
				
			||||||
 | 
					            ! -name "README.md" \
 | 
				
			||||||
 | 
					            -type f \
 | 
				
			||||||
 | 
					            -print)"
 | 
				
			||||||
 | 
					          for _file in ${_files}; do
 | 
				
			||||||
 | 
					            _src="${_file}"
 | 
				
			||||||
 | 
					            _dst="${THIS_REPO}/${_file#${REPO_TEMPLATE}/}"
 | 
				
			||||||
 | 
					            # TODO: Find a more robust / elegant way to get this :point_down:
 | 
				
			||||||
 | 
					            _dst="${_dst%/*}/"
 | 
				
			||||||
 | 
					            mkdir -p "${_dst}"
 | 
				
			||||||
 | 
					            echo "INFO: Copy '${_src}' to '${_dst}'."
 | 
				
			||||||
 | 
					            cp "${_src}" "${_dst}"
 | 
				
			||||||
 | 
					          done
 | 
				
			||||||
 | 
					          git -C "${THIS_REPO}" diff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Commit changes, if there are any
 | 
				
			||||||
 | 
					      - name: Commit changes, if any
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          git -C ${THIS_REPO} config user.name "${GIT_AUTHOR_NAME}"
 | 
				
			||||||
 | 
					          git -C ${THIS_REPO} config \
 | 
				
			||||||
 | 
					            user.email "${GIT_AUTHOR_EMAIL}"
 | 
				
			||||||
 | 
					          git -C ${THIS_REPO} add .
 | 
				
			||||||
 | 
					          git -C ${THIS_REPO} commit \
 | 
				
			||||||
 | 
					            -m "Sync from template@${{ github.sha }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Push the branch to the target repository
 | 
				
			||||||
 | 
					      - name: Push topic branch
 | 
				
			||||||
 | 
					        run: git -C ${THIS_REPO} push -u origin "${HEAD_BRANCH}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Create a pull request in the target repository
 | 
				
			||||||
 | 
					      - name: Create pull request
 | 
				
			||||||
 | 
					        env:
 | 
				
			||||||
 | 
					          GITHUB_TOKEN: ${{ github.token }}
 | 
				
			||||||
 | 
					          GITHUB_USER: ${{ github.actor }}
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          pushd ${THIS_REPO}
 | 
				
			||||||
 | 
					          hub pull-request \
 | 
				
			||||||
 | 
					            -b "${BASE_BRANCH}" \
 | 
				
			||||||
 | 
					            -h "${HEAD_BRANCH}" \
 | 
				
			||||||
 | 
					            --no-edit \
 | 
				
			||||||
 | 
					            -m "Pull updates from ${REPO_TEMPLATE}" \
 | 
				
			||||||
 | 
					            -m "Pull updates from ${REPO_TEMPLATE}"
 | 
				
			||||||
 | 
					          popd
 | 
				
			||||||
		Reference in New Issue
	
	Block a user