DotCi requires you to use Docker compose https://docs.docker.com/compose/
.ci.yml has three main sections
##Run
-
Run a service from docker-compose.yml with default
CMDdefined in theDockerfilerun:
test:
| goal: how to build an awesome CI for your organization. | |
| Couple of years ago I was webdeveloper at Groupon working on a monlithic RoR webapp. | |
| We had grown rapidly and the webapp saw incredible amount of work put in. This also bought in lots of cucumber tests and our build time shot up to 40 mintues. | |
| My Name is Surya Gaddipati, This is my story of my epic journey to build an awesome CI at groupon. | |
| CI is often setup as afterthought | |
| > Teams consider it unimportant in grand scale of things | |
| > Teams often don't have the experience, interest |
| The problem was to find the unique assignment of the ten decimal digits to letters that makes this addition correct: | |
| DONALD + KNUTH = OUTPUT |
| db.run.update({ timestamp: { $exists: true}},{$rename: {'timestamp': 'scheduledDate'}}) | |
| update build_number_sequence with intial values |
| Recent Project improvements | |
| Rebuild doesnt work for subbuilds because of urls | |
| Is not kicking off job with org name in different case | |
| PR kicking off even in the same | |
| Syed . Error | |
| java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String | |
| java.lang.RuntimeException: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String | |
| at com.groupon.jenkins.util.GroovyYamlTemplateProcessor.getConfig(GroovyYamlTemplateProcessor.java:50) | |
| at com.groupon.jenkins.buildtype.install_packages.buildconfiguration.BuildConfiguration.<init>(BuildConfiguration.java:44) |
| <% if( ! DOTCI_STAGE ) %> | |
| run: blah | |
| plugins: | |
| - artifact: my.jar | |
| - downstream: | |
| myorg/myjob: | |
| BRANCH: $DOTCI_BRANCH | |
| SHA: $DOTCI_SHA | |
| DOTCI_STAGE: package | |
| UPSTREAM_NUMBER: $BUILD_NUMBER |
DotCi requires you to use Docker compose https://docs.docker.com/compose/
.ci.yml has three main sections
##Run
Run a service from docker-compose.yml with default CMD defined in the Dockerfile
run:
test:
| # will run docker-compose run ci | |
| run: 'ci' | |
| #will run in parallel | |
| run: | |
| - 'rspec' # These are defined in docker-compose.yml | |
| - 'cucumber' #These are defined in docker-compose.yml | |
| plugins | |
| - checkstyle |
| 1. Vim for js | |
| 2. animations | |
| 3. flexbox | |
| 4. es6 promises | |
| 5. es6 generators | |
| 6. Immutable | |
| 7. Tanspilers, compatibility matrices | |
| 8. Less/Sass/Stylus | |
| 9. Browserify/webpack |
| I like the cleanliness of it, but I'd like some more lines to identify different sections. | |
| It feels a bit too floaty and not enough anchor. | |
| and some border lines would help ground certain sections. | |
| The header is a good example of being anchored, but the rest of the widgets feel unorganized because there's no barrier between them. | |
| Fix and review all permissions on actions on build /project | |
| PR's don't have commiter name or commit message |
| Seperate out branch/tab logic from dynamicproject. It doesnt belong there. | |
| use permissions for configure button + add delete project option | |
| include progress bar | |
| ajax query should only return completed |