-
-
Notifications
You must be signed in to change notification settings - Fork 20
Description
The README contains information on how to build this project to a set of static files. Once these files have been generated, you can either view them locally or deploy them to a website.
This project uses Travis to deploy these resulting files to https://github.com/reactphp/reactphp.github.io. That other project is set up to use GitHub pages to simply publish everything that is stored within to the web under reactphp.github.io which uses the alias reactphp.org.
This deployment is configured as part of this project via the
.travis.ymlfile. This means that whenever Travis detects changes on themasterbranch of this repository, a new rebuild and deployment will be triggered instantly.However, this project builds the website from a number of external repositories, in particular the READMEs of our components. This means that most of the changes that are supposed to be published are actually not part of this project at all.
For this reason, this project uses Travis' cron jobs to trigger a website rebuild and deployment every day (https://travis-ci.org/reactphp/website/settings). This means that any changes will be picked up automatically once every day and the website will automatically stay up to date.
However, there are number of occasions where this "rebuild once per day" may not be sufficient. In particular, if a new component version is tagged and released, it may take up to 24h for this to show up on our homepage. This means that if the release is announced, the website may still show an outdated version.
– See #24
This release process currently needs to be triggered manually as per https://github.com/reactphp/react/wiki/ReleaseProcess#release-checklist or it may take up to 24h before release updates show up automatically.
To improve this, we should automatically trigger a website rebuild whenever a new component release is tagged. The easiest way would be to set up a webhook for each component to trigger a simple script which will then trigger the Travis CI API (https://docs.travis-ci.com/user/triggering-builds/). In this case, we can probably also remove the cron job.
Implementation wise this isn't too hard and should really only be a simple PHP script with 10 lines or so. Question remains on where to best store this script (like my personal website hosting?) and/or whether there are any better alternatives? Any input is appreciated!