Jenkins is an open source automation server which supports the building, deploying and automating of any project.
Jenkins is famous for being a continuous integration/delivery (CI/CD) server, but it is more than that.
Code and config deploys in dev, stage, upd and perf environments (automated and manual)
Unit test and SonarQube coverage
Deploys to live/production
No security (anonymous user)
No organization of jobs
“Freestyle” jobs using GUI elements
Complex functionality through plugins GUI
Installed in the cloud or shared terrestrial server
Basic security (single user)
Jobs organized by name and tabs
Mostly “freestyle” jobs made with the GUI
Some pipeline scripts in the mix
Basic parameterization and job chaining
Installed in the cloud
Solid security (multiple users/roles)
Jobs organized by name, tabs (maintained by regex), environment
Most jobs pipelines scripts, reusable between jobs
Using more complex plugins
It’s the server not the client
Using each project’s Workspace
On a Jenkins server shared installations benefit all jobs
"Groovy is an optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax." [*]
It's basically Java-lite.
You gain much by pulling Groovy pipeline scripts from a Bitbucket repo:
Add to the flexibility and functionality of your jobs by adding parameters and having jobs trigger each other
Parameters can be user selected, passed in by another job, predefined by job, default by environment variable
Job triggering allows a job to be invoked manually or as part of one or more CI/CD processes.
Install S3 command line tools as shared on your Jenkins installation.
Use SCM git polling to trigger uploads into S3 based on the file locations of changed files.