Build, Test, Deploy scripts for Drupal using Docker and CI/CD
Visit Documentation site for more information.
About DrevOps
What is the problem that DrevOps is trying to solve?
Increase the quality of the produced Drupal websites with minimum setup effort and knowledge.
Why is this problem important?
High quality Drupal websites are stable, secure, faster and safer to change.
But developers do not always have the time or skills to setup the tools required to produce and maintain high-quality Drupal websites.
How does DrevOps solve it?
Quick installation of best practices Drupal configuration on Docker stack using a single command lowers entry barrier, while unification of the developer's experience improves development speed across projects.
Who is it for?
- Digital agencies that want to standardise their development stack (standard operating environment) across projects
- Developers that are looking for best practices
- Developers that do not possess required time or knowledge to setup these tools themselves
How does it work?
- You run installer script once
- DrevOps brings the latest release into your codebase
- You commit all new files
- If required, you may override files with changes relevant only to a specific project.
Installation
-
Run installer:
curl -SsL http://install.drevops.com | php
-
Commit added files.
-
Follow instructions in the generated
README.md
files of your project.
Contributing
- Progress is tracked as GitHub project.
- Development takes place in 3 independent branches named after Drupal core
version:
9.x
,8.x
and7.x
. - Create an issue and prefix title with Drupal core version:
[9.x] Updated readme file.
. - Create PRs with branches prefixed with Drupal core version:
9.x
,8.x
or7.x
. For example,feature/9.x-updated-readme
.
Visit Documentation site for more information.
Paid support
We provide paid support for DrevOps:
- New and existing project onboarding.
- Support plans with SLAs.
- Priority feature implementation.
- Updates to the latest version of the platform.
- DevOps consulting and custom implementations.
Contact us at [email protected]
Useful projects
- Drupal module testing in CircleCI
- MariaDB Docker image with enclosed data - Docker image to capture database data as a Docker layer.
- CI Builder Docker image - Docker image for CI builder container with many pre-installed tools.
- Behat Steps - Collection of Behat step definitions.
- Behat Screenshot - Behat extension and a step definition to create HTML and image screenshots on demand or test fail.
- Behat Progress Fail - Behat output formatter to show progress as TAP and fails inline.
- Behat Relativity - Behat context for relative elements testing.
- Artifact Builder - Build code artifact and push it to remote repository.
Below is a content of the README.md
file that will be added to your project.
All content above this line will be automatically removed during installation.
YOURSITE
Drupal 9 implementation of YOURSITE for YOURORG
Onboarding
Use Onboarding checklist to track the project onboarding progress.
Local environment setup
- Make sure that you have latest versions of all required software installed:
- Make sure that all local web development services are shut down (Apache/Nginx, Mysql, MAMP etc).
- Checkout project repository (in one of the supported Docker directories).
- Authenticate with Acquia Cloud API
- Create your Acquia Cloud API token:
Acquia Cloud UI -> Account -> API tokens -> Create Token - Copy
default.env.local
to.env.local
. - Populate
$DREVOPS_ACQUIA_KEY
and$DREVOPS_ACQUIA_SECRET
environment variables in.env.local
file with values generated in the step above.
- Create your Acquia Cloud API token:
- Authenticate with Lagoon
- Create an SSH key and add it to your account in the Lagoon Dashboard.
- Copy
default.env.local
to.env.local
. - Update
$DREVOPS_DB_DOWNLOAD_SSH_KEY_FILE
environment variable in.env.local
file with the path to the SSH key.
ahoy download-db
pygmy up
ahoy build
Apple M1 adjustments
Copy default.docker-compose.override.yml
to docker-compose.override.yml
.
Testing
Please refer to testing documentation.
CI
Please refer to CI documentation.
Deployment
Please refer to deployment documentation.
Releasing
Please refer to releasing documentation.
FAQs
Please refer to FAQs.