feat: add Build Configs service page
This commit is contained in:
parent
684d56fb71
commit
7d0f687a80
67
src/pages/build-configs.mdx
Normal file
67
src/pages/build-configs.mdx
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
---
|
||||||
|
layout: ~/layouts/PageLayout.astro
|
||||||
|
title: 'Configuration files as a service'
|
||||||
|
---
|
||||||
|
|
||||||
|
import Button from "~/components/Button.astro";
|
||||||
|
|
||||||
|
export const products = [
|
||||||
|
{
|
||||||
|
price: "2,500",
|
||||||
|
link: "https://buy.stripe.com/14kbJs98K1fc0p29AC",
|
||||||
|
buttonText: "Get started",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
price: "1,000",
|
||||||
|
link: "https://buy.stripe.com/7sIdRAbgS8HEfjWfZ1",
|
||||||
|
buttonText: "Sign up",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
All of my projects contain similar build configuration files, such as Docker and Docker Compose files, PHPUnit and PHPStan configuration, and CI/CD pipeline workflows. I used to maintain these manually which was time-intensive and there was no guarantee that the same features or options were available from project to project.
|
||||||
|
|
||||||
|
“Build Configs” is a tool I’ve written to maintain a canonical set of templates and generate them for each project based on a per-project configuration file.
|
||||||
|
|
||||||
|
This makes it quicker and easier for me to create or onboard new projects to work on and, as all of the base files are centralised, when I fix something or add a new feature, the changes can be pushed to every project that uses it.
|
||||||
|
|
||||||
|
I’ve been using this on personal projects such as my [Docker Drupal](https://github.com/opdavies/docker-example-drupal) and [Docker LocalGov Drupal](https://github.com/opdavies/docker-example-drupal-localgov) example projects and for various client projects.
|
||||||
|
|
||||||
|
## How does it work?
|
||||||
|
|
||||||
|
- I create a `build.yaml` file for the project that contains its configuration - what version of PHP it needs, which web server to use, which paths to run automated tests from or static analysis on, etc.
|
||||||
|
- I run the `build-configs` tool which generates the required files, such as a Dockerfile, Docker Compose file, PHPStan and PHPUnit configuration files, and a justfile for automating project commands.
|
||||||
|
- The files are committed to version control and pushed to your code repository (GitHub, GitLab, Bitbucket, etc).
|
||||||
|
- As I add new features or make changes, I will re-run the process to re-generate the files and push any changes - ensuring you’re always up to date.
|
||||||
|
|
||||||
|
## Options
|
||||||
|
|
||||||
|
### Initial project setup - £{products[0].price}
|
||||||
|
|
||||||
|
To get your project started on the right foot, I will create a new Drupal project skeleton for you using `build-configs` that is ready to work on, including all of the generated files. You can even edit them if you like as they will get no ongoing updates.
|
||||||
|
|
||||||
|
<Button
|
||||||
|
href={products[0].link}
|
||||||
|
text={products[0].buttonText}
|
||||||
|
/>
|
||||||
|
|
||||||
|
### Ongoing updates and support (single site) - £{products[1].price} per month
|
||||||
|
|
||||||
|
Once you have a project with `build-configs`, if you want to receive ongoing updates to the generated files, I can automatically refresh your files once changes are available and push them to your code repository.
|
||||||
|
|
||||||
|
This also includes unlimited support via a dedicated Slack channel and you can make feature requests for me to consider adding to the roadmap.
|
||||||
|
|
||||||
|
If you like, I can add you to a beta users list and you’ll get new experimental features before anyone else.
|
||||||
|
|
||||||
|
<Button
|
||||||
|
href={products[1].link}
|
||||||
|
text={products[1].buttonText}
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
If you have multiple Drupal sites, [contact me](/contact) and we can work something out.
|
||||||
|
|
||||||
|
### Retro-fitting into an existing project
|
||||||
|
|
||||||
|
`build-configs` can also be added to an existing project. It can be tricky and will be different from project to project so [contact me](/contact) and we can discuss it further.
|
||||||
|
|
||||||
|
Once I know more about your project, I’ll be happy to give you a fixed-price quote to do the work.
|
Loading…
Reference in a new issue