Deployment and build scripts
Deployment to servers is done using continuous integration (CI). You can use CI to add build scripts, execute unit/integration tests, check for code validity using phpcs
and deploy to various environments.
In the root of the project folder, a ci
(or bin
) folder should be made. In that folder will be all the scripts related to building the app and deploying the app. For example we can have build.sh
, deploy.sh
, test.sh
and qa.sh
.
Example of build script looks like, the real implementation may differ per project basis.
Build (build.sh
)
#!/usr/bin/env sh
function build() {
npm install
composer install --no-dev --no-scripts
npm run build
}
build
Tests (test.sh
)
#!/usr/bin/env bash
set -o errexit
set -o pipefail
set -o nounset
set -o xtrace # debugging purposes
function composer_setup() {
echo "--> composer setup"
composer self-update
composer update
composer -o dump-autoload
require infinum/coding-standards-wp
}
function npm_setup() {
echo "--> npm setup"
npm install
npm i -g eslint
npm install -g sass-unused
npm install -g stylelint
npm run build
}
function composer_tests() {
echo "--> composer tests"
vendor/bin/phpcs --standard=Infinum --extensions=php --patterns=vendor,tests --processes=4 .
}
function npm_tests() {
echo "--> npm tests"
sass-unused '**/*.scss'
stylelint '**/*.scss'
eslint --ext .js '**/*.js'
}
function main() {
composer_setup
composer_tests
npm_setup
npm_tests
}
main "$@"
Of course, the details of the server are provided by your friendly devops.