Ivan Berezhnov
I'm the owner and sometimes developer.
Drupal Developer
I worked on:
- CIKLUM
- Aller Media DK
- SimilarWeb
- FFW
- Levi9
- Sanoma Finland & Netherlands
- DOOR3
Continuous integration is a coding philosophy and set of practices that drive development teams to implement small changes and check in code to version control repositories frequently. Because most modern applications require
developing code in different platforms and tools, the team needs a mechanism to integrate and validate its changes.
Continuous delivery picks up where continuous integration ends. CD automates the delivery of applications to selected infrastructure environments. Most teams work with multiple environments other than the production, such as development and testing environments, and
CD ensures there is an automated way to push code changes to them. CD automation then performs any necessary service calls to web servers, databases, and other services that may need to be restarted or follow other procedures when applications are deployed.
Continuous integration and delivery require continuous testing because the objective is to deliver quality applications and code to users. Continuous testing is often implemented as a set of automated regression, performance, and other tests that are executed in the CI/CD pipeline.
continuous integration and delivery platform for Linux, macOS, and Android, in the cloud or self-hosted.
is a tool for defining and managing web development environments. It uses Docker and Docker Compose to create fully containerized environments for your projects.
A thin agent used to provision Docksal Sandboxes on a remote Docker host. The Docksal Sandboxes are continuous integration environments powered by Docksal.
The config.yml we should create in .circleci folder
Jobs include the docker container and steps to build your project.
Workflows include order jobs and conditions for a run.
Environment Variables help you build builds and create a project. Used in bash commands and transferred inside the docker container to run a project.
The CircleCI automatically run a workflow.
A tool for defining and managing web development environments. It uses Docker and Docker Compose to create fully containerized environments for your projects.
We can run:
+
Links to install:
MacOS:
https://docs.docksal.io/getting-started/setup/#mac
Linux:
https://docs.docksal.io/getting-started/setup/#linux
Windows:
Docker containers:
CLI - includes drush and drupal commands
DB - container with MySQL server
WEB - container with Apache and host settings
Docker files in the .docker folder:
We have few ways to init:
1. Get prepared Drupal 7 or 8 projects from GitHub
https://github.com/docksal/boilerplate-drupal8
https://github.com/docksal/drupal8-contrib
https://github.com/docksal/boilerplate-drupal7
2. Create a folder and run "fin init" in a terminal then pass all questions. https://docs.docksal.io/fin/fin-pull#initializing-project
3. Copy from GitHub repository .docksal folder then add composer.json
Example: https://github.com/docksal/drupal8-contrib/tree/master/.docksal
fin p start - start a project and up all containers
fin p stop - stop all docker containers
fin p remove - remove a project
fin init - run to build your project
fin composer <command> - allow use composer with commands
fin exec "your command" - run some commands inside CLI container
Example:
In a theme folder,
you need to run npm
fin exec 'npm install'
fin exec 'gulp watch'
The "init" command it's the main command for creating builds.
CI-Agent automatically runs when creating builds in your server.
Here we describe all steps to build a Drupal project.
A thin agent used to provision Docksal Sandboxes on a remote Docker host. The Docksal Sandboxes are continuous integration environments powered by Docksal.
Let's look at documentation https://github.com/docksal/ci-agent
CircleCI has a free plan but you have only 1000 minutes for running jobs also you can run 2 containers at the same time.
Docksal and CI-Agent are free!
Server for builds
I recommend use DigitalOcean and here you can buy droplet from $5 and more its dependence from hardware
- create simple work example for your project and show your colleagues
- check benefits for your project
- make a presentation for your team and client with demo and don't forget explain all benefits
Thank you
everyone 🤝
By Ivan Berezhnov
Create builds using CircleCI, Docksal and CI Agent