Skip to content
Test, build, and deploy your apps from anywhere, the same way!
Makefile JavaScript TypeScript Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows
docs
scripts
test
.eslintrc.js
.gitignore
LICENSE
Makefile
README.md
diagrams.drawio
docker-compose.yml
env.example
env.template
package.json
prettier.config.js
yarn.lock

README.md

Build Status Netlify Status License

3 Musketeers

The 3 Musketeers is a pattern for developing software in a repeatable and consistent manner. It leverages Make as an orchestration tool to test, build, run, and deploy applications using Docker and Docker Compose. The Make and Docker/Compose commands for each application are maintained as part of the application’s source code and are invoked in the same way whether run locally or on a CI/CD server.

pattern-overview

Why?

Consistency

Run the same commands no matter where you are: Linux, MacOS, Windows, CI/CD tools that supports Docker like GitHub Actions, Travis CI, CircleCI, and GitLab CI.

Control

Take control of languages, versions, and tools you need, and version source control your pipelines with your preferred VCS like GitHub and GitLab

Confidence

Test your code and pipelines locally before your CI/CD tool runs it. Feel confident that if it works locally, it will work in your CI/CD server.


For more information, visit 3musketeers.io.

Usage

This repository is the 3musketeers.io website. This section explains the usage on how to develop and deploy it.

# Development

# create a .env file
$ make envfile ENVFILE=env.example
# Update .env file to set VUEPRESS_HOST=vuepress_dev
# install dependencies
$ make deps
# start vuepress server in a container for local development
$ make startDev
# in a different shell session
$ make lint
$ make test
$ make clean
# Testing

$ make envfile ENVFILE=env.example
$ make deps
$ make lint
# start vuepress in a container in the background
$ make start
$ make test
$ make clean

# See targets `all`, and `onPullRequest`
# Building and Deployment

# create a .env that sets environment variables for production. For instance
$ make envfile ENVFILE=.env.production
# building the static website
$ make build
# deploy the website to Netlify
$ make deploy

# See target `onMasterChange`

Credits and References

You can’t perform that action at this time.