Sign inSign up

ilyasemenov/gitlab-ci-git-push

By ilyasemenov

•Updated almost 3 years ago

Gitlab CI runner image that pushes to a remote Git repo (Dokku, Heroku, Deis, etc.)

Image
2

100K+

ilyasemenov/gitlab-ci-git-push repository overview

⁠GitLab CI runner that pushes to git

This GitLab CI runner image allows to deploy a GitLab project to a remote Git repo (useful for Dokku, Heroku, Deis, etc.)

⁠How to use

Create .gitlab-ci.yml:

image: ilyasemenov/gitlab-ci-git-push

stages:
  - deploy

deploy to production:
  stage: deploy
  environment: production
  only:
    - master
  script: git-push [email protected]:myapp

Go to GitLab > Project > Settings > CI/CD > Secret Variables, and add a variable SSH_PRIVATE_KEY:

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

Make sure your private ssh key is not encrypted, or Gitlab won't be able to authenticate to your SSH server. You'll know if it is encrypted if you open it up and the top has something like:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

If it is, you can decrypt it by running: openssl rsa -in enc.key -out dec.key

⁠Pushing to a branch other than master

By default, git-push will push to branch master of a remote repository (that's what Dokku wants). You can override this with:

git-push [email protected]:repo branch
⁠Pushing to Git running on a non-standard port
git-push ssh://[email protected]:8022/myapp
⁠Not doing force push

By default, git push will be forced. You can disable force push by setting environment variable DISABLE_FORCE_PUSH to any value.

Tag summary

Content type

Image

Digest

sha256:063f73bb8…

Size

10.6 MB

Last updated

almost 3 years ago

docker pull ilyasemenov/gitlab-ci-git-push