Comments (4)
This work is largely done. I've built an example on my govCMS fork to illustrate how this will work:
https://github.com/srowlands/govCMS/pulls (you can submit PRs against this fork to test, too)
There are two example PRs:
- Make the background yellow
- A failing Behat test with screenshot << check the screenshot in comments
To check out the environments and failure screenshot you'll need to add /etc/hosts records (the 'real' version should have a wildcard DNS record) :
- 52.64.233.163 3.stage.dev.govcms.gov.au 4.stage.dev.govcms.gov.au
Any submitted PRs will trigger a new environment to be built, whereby the govCMS codebase is built and tested against a merged codebase. The environments will persist, so a user will be able to login and test features or enhancements made in a pull request.
If one of the tests fail, a screenshot will be taken (via a headless webkit browser) and be made accessible, making debugging issues easier.
There are a few things that we need to build the 'final' version of this:
- how should we handle authentication to the PR environment? (Perhaps a default admin user/pass shared by request?)
- which domain should this run off? My test env assumes 'dev.govcms.gov.au'. A PR environment may end up being $ISSUE_ID.dev.govcms.gov.au?
- how should we handle DNS + SSL? A wildcard SSL certificate would be nice to ensure we are testing in an environment that closely mirrors real govCMS
- a 'bot' user should post the results of a build (via the comments). I'll need a token to be configured on an appropriate user (to be discussed)
- we can also do improve the generated comments (like pasting in the failure messages from the console)
from govcms7.
Probably unlikely that we'll be able to publish PR environments under a .gov.au domain - even if it does have "dev" in the name. Perhaps we buy govc.ms to run these does off? E.g. $ISSUE_ID.dev.govc.ms? This would probably also make it easier to obtain a wildcard SSL Certificate.
For the bot, can we create a user? "govCMS Jenkins" or perhaps Jim?
A nicely formated pass/fail post would be sufficient with a link to the build failure or site build.
from govcms7.
Yes we can create a regular GitHub user to be the bot - I'll need access to the user account to generate an appropriate token.
We have a wildcard domain hooked up to the test environment now (thanks @typhonius), so there is no need for /etc/hosts records, and we can now post screenshots directly into the response comment from the bot (see https://github.com/srowlands/govCMS/pull/4)
from govcms7.
govCMS bot is up so I think we can close this one. @SRowlands++
from govcms7.
Related Issues (20)
- GovCMS Drupal 7 - Updates, Support, End of Life November 2022
- Update UUID to 7.x-1.1 HOT 1
- Field Groups not created properly in PHP7.1 HOT 2
- Checkboxes not visible on admin forms using default Shiny theme.
- Consider adding flood_control and flood_unblock modules in the distro. HOT 1
- Update Drupal core to 7.61 HOT 2
- Include an easy solution for implementing mega menus HOT 1
- Behat test failing - year dropdown HOT 1
- XML Sitemap: An unknown error has occurred (805303f4)
- Webform email "include files as attachments" function broken in govCMS 7.x-3.7 HOT 1
- PHP Notice in hierarchical_select module HOT 3
- Upgrade xmlsitemap to 7.x-2.6 HOT 3
- Upgrade Funnelback Search Integration to 7.x-4.0-beta5 HOT 1
- What does PHP 7.2 mean to govCMS 7 sites? HOT 2
- Logs flooded with warning messages "Invalid display settings encountered" HOT 2
- Remove the SCAYT plugin from CKEditor - rely on the native browser spellchecker instead.
- How does Solr search work in govCMS platforms? HOT 4
- Patch redis module to force a timeout HOT 1
- Facet block titles display for empty facets HOT 1
- Bean update 7.x-1.13 Causes Duplicate Headers HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from govcms7.