Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jelastic-jps/git-push-deploy
Simple Automated CI/CD Pipeline for GitHub and GitLab Projects
https://github.com/jelastic-jps/git-push-deploy
auto-deployment auto-update automatic-deployment automation cd-pipeline ci-automation ci-cd continuous-delivery continuous-deployment continuous-integration delivery-pipeline git git-addons git-integrated github github-webhooks gitlab-ci gitlab-webhook integration-tool pipeline
Last synced: 26 days ago
JSON representation
Simple Automated CI/CD Pipeline for GitHub and GitLab Projects
- Host: GitHub
- URL: https://github.com/jelastic-jps/git-push-deploy
- Owner: jelastic-jps
- License: apache-2.0
- Created: 2016-07-22T16:38:05.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-07-12T07:11:19.000Z (5 months ago)
- Last Synced: 2024-11-10T02:13:58.490Z (about 1 month ago)
- Topics: auto-deployment, auto-update, automatic-deployment, automation, cd-pipeline, ci-automation, ci-cd, continuous-delivery, continuous-deployment, continuous-integration, delivery-pipeline, git, git-addons, git-integrated, github, github-webhooks, gitlab-ci, gitlab-webhook, integration-tool, pipeline
- Language: C#
- Homepage:
- Size: 1.05 MB
- Stars: 43
- Watchers: 8
- Forks: 28
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- jimsghstars - jelastic-jps/git-push-deploy - Simple Automated CI/CD Pipeline for GitHub and GitLab Projects (C# #)
README
# Simple Automated CI/CD Pipeline for Git Projects
This Git-Push-Deploy solution enables automatic delivery of updates within your Git application sources directly to the cloud. The package can be applied as an add-on to **Java**, **PHP**, **Ruby**, **Node.js**, **Python** and **Go** projects, run on top of [the certified stack templates](https://www.virtuozzo.com/application-platform-docs/software-stacks-versions/).
![git-push-deploy-pipeline](images/git-push-deploy-pipeline.png)
The workflow depends on the programming language used in your project:
- *for Java-based projects*, the package initiates creation of separate environment with a [Maven build node](https://www.virtuozzo.com/application-platform-docs/java-vcs-deployment/), which will be responsible for interaction with remote Git repository, triggering your application builds and their deployment to application server
- *for PHP/Ruby/Node.js/Python/Go apps*, the package sets up a pipeline for project deployment directly to the ROOT context on a web server (consider that Ruby app servers are displayed with a deployment mode instead of a context within dashboard, though the actual project location is the same)All related deployment operations are performed via [Application Platfom API](https://www.virtuozzo.com/application-platform-api-docs/). If a server runs multiple containers, all of them will be restarted sequentially (with a 30-second delay by default) during the update to eliminate possible application downtime. Beside that, a special [ZDT Deployment](https://www.virtuozzo.com/application-platform-docs/php-zero-downtime-deploy/) option is used for PHP applications, ensuring their constant availability even with a single application server node.
## Requirements
Before applying the package, please consider the following points:
- The solution is proven for use with GitHub and GitLab repositories
- For a proper package installation, some preliminary Git repository configurations are required:
- generated and remembered *Personal Access Token* that corresponds to your [GitHub](https://github.com/jelastic-jps/git-push-deploy/wiki/GitHub-Access-Token) or [GitLab](https://github.com/jelastic-jps/git-push-deploy/wiki/GitLab-Access-Token) account
- for integration with *Java-powered* app, the appropriate repository root should contain a **_pom.xml_** file with the following content as an obligatory basis (where *groupId*, *artifactId* and *version* values are optional):```xml
4.0.0
com.mycompany.app
my-app
1.0
war
${project.artifactId}
```
[![Deploy to Cloud](images/deploy-to-cloud.png)](https://www.virtuozzo.com/install/?manifest=https://raw.githubusercontent.com/jelastic-jps/git-push-deploy/master/manifest.jps)
## How to Integrate Git-Push-Deploy Pipeline to PaaS Environment
To install the Git-Push-Deploy package, copy link to the **_manifest.jps_** file above and [import](https://www.virtuozzo.com/application-platform-docs/environment-import/) it to your application platform dashboard.
![install git-push-deploy](images/install-git-push-deploy.png)
Within the opened installation window, specify the following data:
- **_Git Repo Url_** - HTTPS link to your application repo
- **_Branch_** - a project branch to be used
- **_User_** - your Git account login
- **_Token_** - personal Git access token for webhook generation (can be created within [GitHub](https://github.com/jelastic-jps/git-push-deploy/wiki/GitHub-Access-Token)/[GitLab](https://github.com/jelastic-jps/git-push-deploy/wiki/GitLab-Access-Token) account settings)
- **_Environment name_** - target environment your application should be deployed to
- **_Nodes_** - application server name (is fetched automatically upon selecting the environment)Click **Install** and wait for the platform to configure CI/CD pipeline for your project. Once your application is deployed, all the further changes, committed to a source repository, will be automatically delivered to your environment.
For more information on the package please refer to the article [Git-Push-Deploy to Containers](https://www.virtuozzo.com/application-platform-docs/git-push-deploy/).