o3de / o3de-jenkins-pipeline Goto Github PK
View Code? Open in Web Editor NEWThis project automates the deployment of the O3DE Jenkins Pipeline that runs the checks on all pull requests submitted to the Open 3D Engine (O3DE).
License: Other
This project automates the deployment of the O3DE Jenkins Pipeline that runs the checks on all pull requests submitted to the Open 3D Engine (O3DE).
License: Other
Setup testing mechanism that can be added to CodePipeline to run tests on Jenkins. These tests can be used to test the staging instance or prod instance to determine if a rollback is needed.
Creating the actual tests (running jobs, load testing) is out of scope.
Jenkins doesn't support moving the plugins directory to another location. This causes issues when using shared storage to host jenkins_home. Plugins that are removed from the plugins.txt file are not removed and need to be uninstalled manually.
Create a custom startup script to clear out the plugins directory when starting up Jenkins.
It's possible to run the Jenkins docker container locally for testing. However, there are a few settings that need to be updated to allow a user to successfully start up a local instance that mimics their prod server.
Using CodeDeploy for the deploy stage requires certain values to be hard-coded in the repo. Moving to CDK deploy avoids this and allows these values to be retrieved from the generated CDK stack.
Related info: https://aws.amazon.com/blogs/developer/cdk-pipelines-continuous-delivery-for-aws-cdk-applications/
Right now we default to 8GB for our prod deployments. A user should be able to change this setting for their own deployments or testing.
Change the hard-coded java memory settings an arg in the dockerfile.
Develop a mechanism to automatically submit PRs to update Jenkins. While deployments are already automated through CDK Pipelines we still need to manually update the dockerfile and plugins.txt to keep components up-to-date.
When a user wants to use the configs in a template file, they typically need to replace the <value>
entrees with the required parameters. Or they can store secret values in AWS Parameter Store.
Create a script to automatically populate these values and push secrets to parameter store if required.
A bootstrap step will be required with the new CDK pipeline setup. Also --context
values are provided instead of CFN parameters.
Latest LTS version is v2.361.1
Update plugins to latest supported versions.
Manual rollback mechanism is available through Fargate task revisions. An automated rollback would update the task to run the previous revision. ECS would then take care of replacing the task.
Prereq: Automated testing: #24
The current pipeline setup requires an empty ECS cluster to deploy into. At the moment this is manually created.
Create a CDK stack to replace this setup, so that the ECS cluster to host the Jenkins server is automatically created.
Add a config for an initial pipeline pointing to the o3de repo. That way users will not have to create a pipeline setup after the initial startup.
While the pipeline is defined in the Jenkinsfile, the pipeline job still needs to be manually created in Jenkins.
Add Jenkins Configuration as Code (JCasC) as an installed plugin and include the required configs to setup the Jenkins server on startup.
This will prevent having to manually configure jenkins on startup and minimize the time required have Jenkins up and running.
Certain dependencies need to be installed in order to perform the initial CDK deploy step for the AWS setup (e.g. node.js, cdk toolkit, etc.). Some of these steps can be automated.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.