feat(git_push_mirror): Added a job that syncs to a remote git repo

User must construct url with userdetails for the sync to work in non-public writable repositories

 Changes to be committed:
	new file:   git_push_mirror/.gitlab-ci.yml
	new file:   git_push_mirror/README.md

issue #1
This commit is contained in:
2021-08-03 14:28:39 +09:30
parent a2174104d1
commit 9b28ae5952
2 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,22 @@
.git_push_mirror:
image: alpine:latest
stage: sync
before_script:
- apk update
- apk add git
script:
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/$CI_PROJECT_PATH --mirror $CI_PROJECT_NAME
- cd $CI_PROJECT_NAME
- git remote add destination $GIT_SYNC_URL
- echo "https://gitlab.com/ $CI_PROJECT_PATH / $CI_PROJECT_NAME .git"
- git push destination --mirror
artifacts:
expire_in: 1 day
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
- if: '$CI_COMMIT_BRANCH == "development"'
when: always

45
git_push_mirror/README.md Normal file
View File

@ -0,0 +1,45 @@
# git push mirror Admin Manual Manual
This job does a git push to a remote git repo.
This job provides the following badge:
- None
## Dependencies
- None
## your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
``` yaml
stages:
- sync
include:
- remote: https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/raw/development/git_push_mirror/.gitlab-ci.yml
Github (Push --mirror):
variables:
GIT_SYNC_URL: "https://$GITHUB_USERNAME_ROBOT:$GITHUB_TOKEN_ROBOT@github.com/NoFussComputing/gitlab-ci.git"
extends:
- .git_push_mirror
```
## CI/CD Variables required
| var name | Description |
|:----:|:----|
| GIT_SYNC_URL | this is the remote git repositories https clone address. <br>***Note:** if the remote repository requires authentication, you will need to build the url. like above.* |
## Job Workflow
## Artifacts
-
## License
To view the license for this folder and any sub-folders, refer [here](https://gitlab.com/nofusscomputing/projects/gitlab-ci)