Tired of deploying manually with couscous deploy
? You can set up Travis so that it will deploy automatically for you on each push to master
.
To set this up, please follow all the steps below.
In order to push to your repository from Travis, you need to authorize Travis. You do so by creating a GitHub token and then encrypting it to store it in .travis.yml
.
from your GitHub account, go in Settings > Personal access tokens
create a new Personal Access Token and give it the public_repo
permission (if the repository is public)
install the Travis command line tool
gem install travis
run travis login
in the repository directory
encrypt the token:
travis encrypt GH_TOKEN=YOUR_TOKEN_HERE --add
The --add
flag will automatically write the encrypted string to your .travis.yml file.
your .travis.yml
should now contain a new secure
line looking like this:
env:
global:
- secure: aeuwi73FIpzkIuk0XkbxiYb5M+HzTIKJy/eiBa5gWhSWq6FlI1fysDGvDcExnKyNH0z9sud0sNPBbi5O5z/uiqupoxoBLuFHfLG3NnLrvjQ2SAmrsIBWtsU737Vo5klbfJp2oJ0hrQCIlczwkfK5j+HbQmGUoS5w81pr3kPxnst=
Couscous must be installed to be used in Travis. If you have been using the Phar, you should install Couscous using Composer instead:
$ composer require couscous/couscous
This will update your composer.json
.
.travis.yml
Here is an example of what your .travis.yml
might look like. This assumes you use Travis to run PHPUnit tests. If not, look at the next section.
language: php
php:
- 7.3
env:
global:
- GIT_NAME: "'Couscous auto deploy'"
- GIT_EMAIL: couscous@couscous.io
- GH_REF: github.com/CouscousPHP/Couscous
- secure: ...
before_script:
- composer install --no-progress
script:
- phpunit
after_success:
- vendor/bin/couscous travis-auto-deploy
As you can see above, you need to set up:
GIT_NAME
and GIT_EMAIL
GH_REF
is the GitHUb repository URLcomposer install
is necessary to install Couscousvendor/bin/couscous travis-auto-deploy
If you use Travis only to update the website, then use script:
instead of after_success
:
language: php
php:
- 5.4
env:
...
before_script:
- composer install --no-progress
script:
- vendor/bin/couscous travis-auto-deploy
If you run your tests against multiple PHP versions, you want to deploy the website only once (i.e. not for all PHP versions). To do this, travis-auto-deploy
will deploy only when the PHP version is 5.4.
You can customize this using the --php-version
option:
language: php
php:
- 5.5
...
after_success:
- vendor/bin/couscous travis-auto-deploy --php-version=5.5
Be also aware that travis-auto-deploy
will only deploy the website for pushes on the master
branch.