Commit Graph

421 Commits

Author SHA1 Message Date
Fabien O'Carroll
3f52c404d4 Removed coverage tasks from Gruntfile
refs #9441
2019-04-08 18:23:35 +02:00
Kevin Ansfield
36511f5a6d Fixed never ending "Building admin client" messages using grunt dev
no issue
- ember-cli stopped outputting the "Build successful" text that we were looking for as an indication of completion
2019-04-04 09:48:19 +01:00
Nazar Gargol
cea6b6c837 Improved grunt express/casper watchers
closes #9718

- fs.fileWatch that is used internally by 'gase' in 'grunt-contrib-watch', is having 100ms pooling default (07828a6845/lib/gaze.js (L36)). This is causing hight CPU usage for large amount of files.
- As suggested in https://github.com/gruntjs/grunt-contrib-watch#why-is-the-watch-devouring-all-my-memorycpu the watch interval was set to higher 500ms because the recommended default of 5s (https://github.com/gruntjs/grunt-contrib-watch/issues/145#issuecomment-20526067) was visible in the development flow
2019-04-02 14:16:26 +08:00
Rishabh Garg
2764ed9ee3 Added tests to ghost release process (#10613)
no issue

- acceptance tests run on each build
- regression tests run once per day
- if we do a release, we have to ensure that we run all tests
- reduces the risk of releasing a new version with broken regression tests
2019-03-15 11:28:22 +01:00
Hannah Wolfe
9efc06255f Simplify lint build in travis & grunt
refs #9441

- We have logic in travis and in grunt and in package.json, this simplifies things.
- `grunt lint` is now just an alias
2019-03-11 16:25:56 +00:00
Kevin Ansfield
7e55715f3d Added circular dependency grunt dev build log filter
no issue
- ember-data 3.6.0 outputs some benign "Circular dependency" warnings which get shown in `grunt dev` build output and cause the "Building admin client..." messages to stop repeating
- adds a filter to ignore any lines containing "Circular dependency" to keep output clean and allow the repeating build message to continue
2019-03-06 09:03:14 +00:00
Fabien O'Carroll
52ad2711b7
Fixed grunt master to work with submodules correctly (#10566)
refs #9441

`grunt master` should only error if there are changes to tracked files which have not been committed - this ensures no work is lost.
2019-03-06 09:03:01 +01:00
Fabien O'Carroll
92621159a6
Errored if grunt master run in dirty working directory (#10476)
refs #9441 

* Refactored master script
* Added check for working directory
2019-02-11 17:25:25 +01:00
Fabien O'Carroll
bdd57b36cf
Moved grunt-eslint to npm script executing eslint (#10474)
refs #9441

* Updated top-level ids to use const
* Removed one layer of indentation
* Added .eslintignore files for server and test tasks
* Added npm scripts for eslint
* Fixed lint command in w/ grunt
* Uninstalled grunt-eslint
* Added eslint config
2019-02-11 13:26:06 +01:00
Katharina Irrgang
75fbd272c9
Separated test env into: acceptance, regression and unit tests (#10411)
refs #9178

`yarn test` only runs acceptance and unit tests.
We will setup a cronjob in Travis and run the regression tests once per day.
You can manually run them with `yarn test:regression`

This separation is just a first step into the right direction.
Travis will no longer run for 10-13minutes.
The goal is to run common API use cases and unit tests in Travis and locally by default.

## After this separation we still need to:

- re-work our test utility
- remove some tests
- define which tests are our common API use cases
- rewrite some tests
- make testing easier (starting/stopping Ghost, fixtures and resetting services or event listeners, it's a pain and takes sometimes ages to fix tests)


---

**Acceptance:**
- common/basic API use cases against the current **stable** API

**Unit:**
- all unit tests (no database access)
- proper mocking

**Regression:**
- packages we don't want to run for each PR or commit
- tests which protect Ghost from breaking components and behaviour
- it is wishful that regression tests are using Ghost's API's (frontend, apps, core)

---

**This PR requires an update to our docs.**
2019-01-22 17:54:50 +01:00
Katharina Irrgang
585eada1c3
Removed grunt-docker from dev dependencies (#10405)
no issue

- this npm package is very out-of-date
- it shows 5-6 security warnings
- i don't really know why this grunt command exists
- it was added 5 years ago: f84d3d32e5
2019-01-22 06:56:50 +01:00
Kevin Ansfield
26d567b948 Fixed high CPU usage of grunt dev
no issue
- exclude the `core/server/lib/members/static/auth` from the express reload watch task as it contains a large `node_modules` directory which caused `grunt-contrib-watch` to peg the CPU
- the directory only relates to static client-side files which do not require a server restart on change and ivereload is handled via the separate `preact watch` shell task
2019-01-02 13:30:37 +00:00
Fabien O'Carroll
a5ea34900b
Added members lib module (#10260)
* Added members library inc. gateway

refs #10213

* Added the auth pages and build steps for them

refs #10213

* Cleaned up logs

* Updated gruntfile to run yarn for member auth

* Design refinements on members popups

* UI refinements

* Updated backend call to trigger only if frontend validation passes

* Design refinements for error messages

* Added error message for email failure

* Updated request-password-reset to not attempt to send headers twice

* Updated preact publicPath to relative path

* Build auth pages on init
2018-12-11 13:47:44 +07:00
kirrg001
8d0595a73c Removed shell:dbhealth from grunt master
no issue

- since Ghost 2.0, the Ghost server takes care of executing `knex-migrator migrate` if needed
2018-10-16 10:24:02 +02:00
Katharina Irrgang
d2baf80d58
Optimised test folder structure (#9958)
refs #9866

- test/functional/
- test/functional/api
- test/functional/api/v0.1
- test/functional/api/v0.1/utils
- test/functional/api/v2
- test/functional/api/v2/admin
- test/functional/api/v2/admin/utils
- test/functional/api/v2/content
- test/functional/api/v2/content/utils

- updated grunt file
- instead of `grunt test-routes`, you now need to use `grunt test-functional` (docs are updated)

You can use `localUtils.API.getApiQuery('posts/')` and it will generate the correct API url.
2018-10-07 16:36:02 +02:00
kirrg001
f198343698 Removed test/functional/module/module_spec.js
no issue

- why? this is a unit test (!)
- we start+stop Ghost in the routing tests a lot, this implicit tested
- it has no priority for now to move this test to a unit test
- this was the only module test, removed related grunt tasks
2018-10-05 13:51:41 +02:00
Kevin Ansfield
3ec62499f5
Added --no-server-watch option to grunt-dev (#9719)
refs https://github.com/TryGhost/Ghost/issues/9718
- running `grunt dev --no-server-watch` will skip watching server and theme files
- reduces idle CPU usage from 20% to 0%
- useful for client-only development to save battery power
2018-07-09 10:12:33 +01:00
Kevin Ansfield
58aa531813 Cancel repeating client build log on build error
refs https://github.com/TryGhost/Ghost/pull/9611
- #9611 added a repeating message to `grunt dev` output whilst waiting for a successful build but there was no handling for failed builds
- modify bgShell config to cancel the repeating message when there is output on the `stderr` pipe from `ember-cli`
2018-05-03 13:03:29 +01:00
Kevin Ansfield
eef2d0bbb0 Log "Building client" message until client build finishes (#9611)
no issue

- display "Building admin client... (can take ~1min)" every 5 seconds when running `grunt dev` until the ember build finishes so that it's clear the command is still busy
2018-04-30 21:16:24 +02:00
kirrg001
4265afe580 Moved utils/url.js to UrlService
refs #9178

- we have to take care that we don't end up in circular dependencies
  - e.g. API requires UrlService and UrlService needs to require the API (for requesting data)
- update the references
- we would like to get rid of the utils folder, this is/was the most complicated change
2017-12-11 20:05:33 +01:00
Katharina Irrgang
7bcccc71dc
Moved apps into web folder (#9308)
refs #9178

- move express apps to one place (called `web`)
- requires https://github.com/TryGhost/Ghost-Admin/pull/923
- any further improvements are not part of this PR
- this PR just moves the files and ensures the paths are up-to-date
2017-12-06 17:37:54 +01:00
kirrg001
3e482254a3 Ensure test coverage exit in Travis
refs 611e8b5634

- looks like only grunt coverage won't tell Travis that the tests are finished
- second attempt
2017-12-04 15:18:12 +01:00
Katharina Irrgang
611e8b5634 Ensure tests exit in Travis (#9288)
refs https://github.com/mochajs/mocha/issues/3044

- there was a breaking change in mocha, which i have mentioned [here](ee7710ba68), but i thought it's not required, but it is
- it can happen that with mocha 4.x, travis does not complete a test run, because the process does not exit (maybe the test env does not shutdown everything completely)
- but it's hard to figure out why that happens, so we simply add `--exit` (this reflects the mocha 3.x behaviour)
- i've tested that failed tests are still counted and the build results in a red state
2017-11-29 15:22:21 +00:00
Kevin Ansfield
31ee7bb4e1 Clean the core/built dir often to avoid numerous duplicate files (#9245)
closes #8162

- remove `core/client/dist` from the `clean` task, Ghost-Admin takes care of this automatically
- run `clean:built` any time the following are run so that the built dir doesn't get _huge_ and cutting a release doesn't accidentally include tons of unused built files:
	- `grunt dev`
	- `grunt dev --client`
	- `grunt release`
2017-11-16 11:44:15 +01:00
Hannah Wolfe
bcf5a1bc34
Switch to Eslint (#9197)
refs #9178

* Add eslint deps, remove old lint deps
* Add eslint config, remove old lint configs
* Config for server and tests are different
* Tweaked rules to suit us
* Fix linting in codebase - lots of indent changes.
* Fix a real broken test
2017-11-01 13:44:54 +00:00
Hannah Wolfe
882a2361ee
Moved apps to /services/ & moved individual tests (#9187)
refs #9178

* Moved app handling code into services/apps
  - Apps is a service, that allows for the App lifecycle 
  - /server/apps = contains internal apps 
   - /server/services/apps = contains code for managing/handling app life cycle, providing the proxy, etc
* Split apps service tests into separate files
* Moved internal app tests into test folders
    - Problem: Not all the tests in apps were unit tests, yet they were treated like they were in Gruntfile.js
    - Unit tests now live in /test/unit/apps
    - Route tests now live in /test/functional/routes/apps
    - Gruntfile.js has been updated to match
* Switch api.read usage for settingsCache
* Add tests to cover the basic App lifecycle
* Simplify some of the init logic
2017-10-30 12:31:04 +00:00
Katharina Irrgang
bfade9f50d Tests: Renamed unit/server_helpers to unit/helpers (#9145)
no issue

- nothing to explain 😁
2017-10-19 12:02:21 +01:00
Hannah Wolfe
b6b299a8f7 Used ghost-ignition.debug, removed debug dep (#8881)
no issue

- Upgraded ghost-ignition
- Use debug from ghost-ignition everywhere in the code base
- Remove debug dependency
- Fixed random typo in Gruntfile.js
2017-08-15 18:29:27 +07:00
Katharina Irrgang
61158d5540 🐛 Fixed grunt release for development (#8831)
closes #8829

- `grunt release` build the admin assets in the folder you execute the command
- the admin build generates the admin views
- we copy the production view for development to avoid another ember build
- the copy command has to happen before we prepare the build zip, otherwise the release tree is incomplete
- this will prevent missing the development view for npm
2017-08-03 12:05:35 +04:00
Kevin Ansfield
665f9f3926 🎨 Don't include Ghost-Admin development assets in release builds
closes #6149

- speeds up and reduces size of releases by not building and including the development versions of Ghost-Admin
- ensures the server can still be run in both production and development by copying the admin  `default-prod.html` file to `default.html` as part of the release task
- development builds aren't useful in release zips (especially when the sourcemaps are stripped from releases) - if deep debugging or changes are to be made in Ghost-Admin then it should be checked out from git (see https://docs.ghost.org/docs/working-with-the-admin-client)
2017-08-02 11:54:45 +04:00
Hannah Wolfe
2ce1b5e071 🐛 fixed grunt dev restarting loads during tests (#8798)
closes #8599

- `grunt dev` was watching for changes to all config files
- added an ignore for config.testing.json
- now it won't restart constantly during tests
2017-08-01 10:07:17 +04:00
Hannah Wolfe
301696632f 🛠 🙈 Rename ghost-url.js to ghost-sdk.js (#8767)
closes #8605

- This file has already been moved, might as well get the rename out of the way
- Especially as we don't migrate clients - everyone will now need to make just one change
2017-07-28 18:23:32 +04:00
John O'Nolan
8f844a70fe 👌🏼 Grunt master for submodules
refs #8235

- the --remote option only works if your upstream is origin
- this version of the command should work for everyone
2017-04-17 19:55:07 +01:00
Hannah Wolfe
e9a537004b Added pre-commit hook to handle submodules (#8302)
refs #8235

Usage:
- for existing development setups: `grunt symlink` (will create the pre-commit symlink)
- for fresh development setups: `npm run init` (symlinking happens as part of the typical set up)

-  Added pre-commit hook to handle submodules
  - Checks to see if there are any submodules about to be committed
  - Output matches closely to `git st` to make it easy to read
  - Requires interaction from the committer to accept that this really should be committed
-  Use grunt symlink to register githooks
  - Grunt symlink will make a link to the pre-commit hook
  - It ONLY does this if there isn't already a pre-commit hook, so won't overwrite anything
  - It does this as part of npm run init, not grunt init, because a release repo would NEVER want this
  - This is a dev tool, that configures the repo for development
2017-04-13 08:26:48 +01:00
Kevin Ansfield
d0b9d16987 🛠 add npmInstall: true back for subgrunt:init
no issue
- fixes `grunt init` task when client submodules aren't already installed
2017-04-11 18:19:06 +01:00
Hannah Wolfe
352606fb28 grunt master improvements (#8301)
refs #8235

- Use yarn to install top-level dependencies
- Change to use git submodule update --remote to update submodules to master rather than the pinned commit
- Clarify that the existing submodule update will update to the pinned commits by naming it 'pinned'
- Use `upstream` as default remote
- Support --upstream= or GHOST_UPSTEAM env var
- Output a log line telling the user where master was pulled from
2017-04-10 15:51:32 +02:00
Hannah Wolfe
a413d70313 Asset amends (#8294)
refs #8221

🔥 Remove ghost=true concept from asset url helper

 💯 Introduce CSS minification with cssnano
- add new grunt-cssnano dependency
- wire up grunt task to minify public/ghost.css

🎨 Rename minification config & hash params
- Change minifyInProduction -> hasMinFile
  - this means this asset should have a .min file available
- Change minifyAssets -> useMinFiles
  - this means that in this env we want to serve .min files if available

🎨 Update public/ghost.css to serve .min for prod
- add the new `hasMinFile` property

🎨 Move minified asset handling to asset_url util
- this logic should be in the util, not the asset helper
- updated tests

📖 Error handler always needs asset helper
- this removes the TODO and adds a more sensible comment
- we also need to update our theme documentation around error templates

🔥 Don't use asset helper in ghost head
- use getAssetUrl util instead!
- removed TODO

📖 Update proxy docs
🎨 Simplify asset helper & add tests
- this refactor is a step prior to moving this from metadata to being a url util
- needed to skip some new tests

🐛 Add missing handler for css file
2017-04-10 11:30:21 +02:00
Aileen Nowak
83f084608f 💁🏻 Moveshared/ to server/public (#8273)
refs #8221

Instead of serving our shared assets from a `shared/` folder, we move the file, which are used server side to `server/public`.
Adds a new `config.paths` entry: `publicFilePath` and renames the middleware to serve the files to reflect the changes.
Adds `404-ghost.png` images to be used by the server side rendered default template `error.hbs`.
2017-04-07 13:21:41 +01:00
Katharina Irrgang
13fb0c68b4 🛠 grunt master (#8251)
refs #8235

- add a new grunt command `dev-master`
- this command will bring back your working directory to latest master
- plus it will update your dependencies and checks your database health
- it won't build the client (!)

* 🛠    grunt dev-master
* fix jscs 💣
* change to grunt master
2017-04-05 20:46:22 +01:00
Katharina Irrgang
8f7ee82122 🐛 fix grunt test (#8266)
no issue

- it was not possible to run a single test in core/server/apps/.../tests
2017-04-05 20:20:00 +02:00
Kevin Ansfield
1cb1ea105c 🛠 switch to using yarn in our Grunt tasks (#8261)
no issue

- use `yarn install` instead of `npm install` in grunt tasks
- remove `grunt deps` and `grunt shell:{shrinkwrap/prune/dedupe}` tasks as they are not needed when using `yarn`
- set `options.npmPath` to `yarn` for subgrunt so it doesn't use `npm install` automatically
- don't remove client contributors files in `grunt clean` - those files are now manually created and should be kept

* 🛠 switch to using yarn in our Grunt tasks
* 🛠 use yarn for `npm run init`, update README
2017-04-04 11:47:12 +01:00
Kevin Ansfield
5710e2f60e add --server/client options to grunt dev (#8241)
refs #8235

- adds `grunt dev --server` which will start the express server and restart on server changes but will not rebuild or watch any client files (if client files are missing or out of date you can run `grunt build` first)
- adds `grunt dev --client` which will only start the client server and rebuilding/livereload - useful if you are experiencing issues with one or the other crashing because you can run server/client in separate tabs
2017-03-30 14:51:22 +01:00
Kevin Ansfield
c9e0c252f0 grunt dev admin livereload (#8176)
refs https://github.com/TryGhost/Ghost/issues/8161, requires https://github.com/TryGhost/Ghost-Admin/pull/590
- adds a development-only route to the admin app that redirects to ember-cli's livereload script
- updates Gruntfile `watch` task to pass the `live-reload-base-url` param with subdirectory support
- updates Gruntfile `bgShell:client` task to filter potentially confusing output from `ember serve`
  - removes `Livereload server on http://localhost:49153`
  - removes `Serving on http://localhost:4200/`

With this and the required Ghost-Admin PR, when using `grunt dev` the admin screen will refresh any time a file is changed. It will also allow client tests to be run simultaneously by visiting http://localhost:4200/tests
2017-03-30 13:27:07 +01:00
Hannah Wolfe
d294177966 🔥 Remove handlebars from serving admin (#8184)
refs TryGhost/Ghost#8140
refs TryGhost/Ghost-Admin#593

- now that the admin index page is just html, we don't need handlebars anymore
- as we can use res.sendFile to send the static HTML file, don't need to "render" it anymore
- remove the view engine, hbs and the use of helpers - it's all unneeded
- change the filenames to .html to reflect this
2017-03-20 12:00:18 +00:00
Hannah Wolfe
4a6f58d8d1 🙅🏽 Admin server split (#8142)
refs #8140

 Support new default-prod.hbs template for admin
 Redirect ghost admin urls without a #
 Update admin urls to include #
🎨 Move the admin templates
🔥 Remove redirect to setup middleware
🚨 Tests for new middleware
2017-03-14 17:03:30 +01:00
Katharina Irrgang
b5cdc01ad1 🎨 Updates for Gruntfile (#8158)
* grunt docs did not work
  - the option "extras" did not work
  - https://github.com/jbt/docker/blob/v0.2.14/src/docker.js#L1280
  - there is a bug in docker docs
  - i removed it for now
* grunt watch-docs typo + remove old config
* remove client testing and client linting
* optimise grunt validate
  - validate is just a wrapper command for `npm test`
  - it will either run lint or the server tests
  - no build - why should validate build ember?
* config updates
  - we don't have a config.js anymore
  - use new config notation
* Update grunt dev
  - livereload for Ghost wasn't working correct, the server wasn't stopped correctly and after reload an address in use error was visibile
  - that is because the "spawn" option has changed to "nospawn"
  - add stdout/stderr info to the bgshell watch command
2017-03-14 13:51:32 +00:00
Katharina Irrgang
f8c51ac7e5 😱 🚀 🎨 tests: use truncate instead of database deletion (#8119)
* 😱  🚀  🎨  tests: use truncate instead of delete the database

refs #7718, refs #7470

- should bring massive speed improvement
- could also fix random test failures (e.g. sqlite database is busy)

* gruntfile: add knex-migrator command in test-setup
2017-03-09 19:38:20 +00:00
Katharina Irrgang
2d19ae2c6c 🔥 😎 remove old migrations (#7887)
refs #7489

- remove old migration code
- this logic was sourced out to knex-migrator
2017-01-25 13:47:49 +00:00
Katharina Irrgang
68741a1106 Revert "🎨 grunt release .knex-migrator" (#7874)
refs #7489
2017-01-23 12:33:03 +01:00
Katharina Irrgang
c8c696f659 🎨 grunt release .knex-migrator (#7591)
no issue
- the file was not copied over for the release
- @TODO: different solution?
2016-10-24 10:18:04 +01:00
Hannah Wolfe
b729597bf5 🔥 Remove the contributor list from Gruntfile (#7428)
refs #7427

- Moving all release-specific code out of the core repository
- Also found a different way to do this, without needing API access :)
2016-09-26 07:16:55 -05:00
kirrg001
8115d83782 🔥 remove postgres support
refs #1333, refs #5878, refs #5321
2016-09-20 15:59:34 +01:00
kirrg001
13f7d51213 🔥 remove ensureConfig from Gruntfile
refs #6982
[ci skip]
2016-09-20 15:59:34 +01:00
Hannah Wolfe
470000242d 🛠 Make it easy to test preparing dependencies (#7335)
no issue

- as part of a release, we run npm dedupe, npm prune and npm shrinkwrap. In certain cases this can change which dependencies are used
- with this change `grunt deps` will run those 3 tasks so it's easier to test what happens
2016-09-14 15:57:50 +02:00
Katharina Irrgang
a5840753fc 🚨 increase mocha timeout globally (#7378)
no issue
2016-09-14 14:16:57 +01:00
Katharina Irrgang
8c1e5fbc61 🐛 add missing dependency lodash.orderBy (#7333)
no issue
2016-09-14 11:22:16 +01:00
Austin Burdine
03d4137b86 Move remainder of ember tasks to client repo (#7172)
* Updating Ghost-Admin: Gruntfile work

* move remainder of ember tasks to client repo

refs #6977
- move ember build tasks to client repo
- remove unneeded dependencies
2016-08-07 11:53:28 +02:00
Austin Burdine
77464c59bd improve Ghost contributor tooling (#7042)
refs #6977
- update client ref
- add gh-contrib-list dependency
- remove buildAboutPage task
2016-07-22 12:53:48 +01:00
Katharina Irrgang
3f3ed61273 improvement: travis server (#7032)
no issue
- do not build client when running server tests
2016-07-20 04:39:40 -06:00
Austin Burdine
14c3d0e9ef Merge pull request #7006 from kevinansfield/subgrunt-init
Use subgrunt to install client dependencies
2016-06-18 15:11:35 -04:00
Kevin Ansfield
706d47fb5b Use subgrunt to install client dependencies
closes https://github.com/TryGhost/Ghost/pull/7005, requires https://github.com/TryGhost/Ghost-Admin/pull/79
- defers to client's Gruntfile to install client dependencies, avoids requirement for a global bower install
2016-06-18 18:35:51 +01:00
kirrg001
250d571fe6 improvement: jshint/jscs
no issue
- add mocha option to jshintrc, no need to define globals in files anymore
- call client grunt commands in case of jshint/jscs
2016-06-17 22:59:47 +02:00
Hannah Wolfe
6d0b4ba03c Merge pull request #6952 from kirrg001/fix/mocha-coverage
fix: require overrides for mocha coverage
2016-06-09 12:33:35 +01:00
Hannah Wolfe
0c44353e7a Merge pull request #6943 from kirrg001/improvement/single-test-with-autocompletion
improvement: offer a way to run single test with bash file completion
2016-06-09 12:28:54 +01:00
kirrg001
658efd1a23 fix: require overrides for mocha coverage 2016-06-09 13:01:35 +02:00
Kevin Ansfield
1c0cbffa5b Move client linting to Ghost-Admin
no issue
- remove client-related lint config
- add `lint-all` task that uses subgrunt to also run client's lint task
2016-06-09 09:16:39 +01:00
kirrg001
ac677e3c43 improvement: run single test with bash file completion 2016-06-08 17:35:29 +02:00
Hannah Wolfe
3991446df1 Add dedupe to release process
no issue
- This seems to be needed between dedupe & shrinkwrap in certain circumstances
2016-06-06 13:52:45 +01:00
Hannah Wolfe
80a79172c4 Revert "Revert "Force UTC at process level"" 2016-06-03 09:06:18 +01:00
Hannah Wolfe
78e693f469 Revert "Force UTC at process level" 2016-06-02 14:38:02 +01:00
kirrg001
ec176c243a Force UTC at process level
issues #6406 #6399
- all dates are stored as UTC with this commit
- use moment.tz.setDefault('UTC')
- add migration file to recalculate local datetimes to UTC
- store all dates in same format into our three supported databases
- add option to remeber migrations inside settings (core)
- support DST offset for migration
- ensure we force UTC in test env
- run whole migration as transaction
- extend: Settings.findOne function
2016-06-02 13:23:09 +02:00
Hannah Wolfe
685ceac324 Exclude fix for grunt coverage task
no issue

- fixes grunt coverage task which was erroring with the message: 'Fatal error: spawn Unknown system errno 7'
- using glob matching results in expanding to cover every file with -x in the mocha command,
this was causing some sort of overflow type error.
- we can just exclude the directory and this is much quicker & makes more sense
2016-06-01 12:53:59 +01:00
kirrg001
85e21223ce improvement: run single test with mochacli 2016-05-25 09:12:23 +02:00
Kevin Ansfield
30b3ccc387 Drop .bowerrc, move bower install into ember:init task
no issue
- perform `bower install` alongside `npm install` in the `ember:init` task - every usage of `shell:bower` was immediately preceded by `shell:ember:init` so it makes sense to move all ember initialisation steps into the one grunt command
- remove `.bowerrc` file so that the standard ember conventions of `npm install && bower install` inside the client directory work without ending up with folders such as `core/client/core/client/bower_components/*`

This does have the effect of causing `bower install` from the root dir to fail with `bower ENOENT No bower.json present`. As far as I can tell we have not documented running `bower install` manually anywhere and I believe the new behaviour matches the expected behaviour more closely as well adding more consistency to the way client-side dependencies are installed.
2016-05-23 16:59:42 +01:00
Kevin Ansfield
d22fe2385f Fix order of subtasks in grunt init
no issue
- moves the `update_submodules` task to be first to ensure we the client code is in place ready for the ember/bower tasks
2016-05-19 16:13:52 +01:00
Kevin Ansfield
1a52502472 Revert "Temp add minification in grunt for prod JS files" 2016-05-12 18:20:08 +02:00
Jason Williams
7a8c064c42 deps: grunt@1.0.1 + related updates
- Gets all grunt dependencies in line with the
  grunt 1.0 release.
- deps: grunt-cli@1.2.0.
- deps: grunt-bg-shell@2.3.3.
- deps: grunt-contrib-clean@1.0.0.
- deps: grunt-contrib-compress@1.2.0.
- deps: grunt-contrib-copy@1.0.0.
- deps: grunt-contrib-jshint@1.0.0.
- deps: grunt-contrib-watch@1.0.0.
- deps: grunt-docker@0.0.11.
- deps: grunt-express-server@0.5.3.
- deps: grunt-jscs@2.8.0.
- deps: grunt-mocha-cli@2.1.0.
- deps: grunt-mocha-istanbul@4.0.2.
- deps: grunt-shell@1.3.0.
- deps: istanbul@0.4.3.
2016-04-28 09:18:27 -05:00
Hannah Wolfe
f5fe772c09 Temp add minification in grunt for prod JS files
no issue

- This is required due to a bug in ember-cli, see: ember-cli/ember-cli#5795
2016-04-14 10:34:14 +01:00
Jason Williams
7559bb7b26 Fix test conflicts
Closes #6710
- Restore config to baseline before testing.
- Don't mutate fixture data.
2016-04-13 11:27:26 -05:00
Hannah Wolfe
6b74e1a34a Dev tooling clean up
- remove old casper.js tests
- cleanup mochacli groups that are less useful than `grunt test:path`
- improve inline Gruntfile.js docs
- fixup coverage for new internal apps
- add new coverage-all task which works for all our tests
- reverse order of master-warn messages to make this clearer
- remove bluebird from greenkeeper ignores
2016-04-13 13:21:33 +01:00
Austin Burdine
1181707a9d move private-blogging functionality into an internal app
closes #5914, #6589
- moves all private-blogging related code & tests into /server/apps/private-blogging/
- rework Grunt to run private-blogging tests
- modify server apps code to have a place for internal apps
2016-04-11 08:58:41 -05:00
Jason Williams
9fe573a0c5 Refactor content deletion
- Simplify the `init` method in `models/index.js` so that it no longer
  returns a promise. Easier to use.
- Eliminates the `deleteAllContent` method from `models/index.js` as it
  can all be handled at the API layer in a single spot.
- Optimize `destroyAllContent` in `api/db.js`. Eliminates
  double-fetching every post from the database and converting it to
  JSON. Also only fetches ids from the database instead of the entire
  model.
- Eliminates the custom static method `destroy` in the Post model in
  favor of handling detaching tag relations in a single place (the
  `destroying` event). This also eliminates a big source of unneeded
  database round trips--needing to get post ids to feed into
  `Post.destroy()` which then re-fetches the post again.
2016-03-22 10:10:09 -05:00
Hannah Wolfe
398b07c9c2 Fetch about page images properly
- Apparently I really didn't test this very well...
... turns out I was looking at the built assets folder instead of the client/public folder
... and this wasn't working at all
😭
2016-02-18 13:49:42 +00:00
Hannah Wolfe
c301510cd1 Refactor gravatarLookup, remove request dependency
no issue

- request is quite a heavy dependency
- we were only using request in 3 places: a test, storing contrib images in the gruntfile & the gravatar lookup
- all 3 are relatively simple to do with the http/https module
- refactored all 3, removed request
2016-02-16 11:12:01 +00:00
JT Turner
1f4c01d207 Started moving meta data fetching to functions.
issue #6186
- Moved asset helper logic to a asset url function.
- Created author image function to be used in ghost_head helper.
- Created author url function to be used in the ghost_head helper.
- Created canonical url function to be used in the ghost_head helper.
- Moved meta_description helper logic to a function.
- Moved excerpt helper logic to a function.
- Created an index in data/meta to be used in ghost_head helper to get all data.
- Created keyword function to be used in the ghost_head helper.
- Created modified data function to be used in the ghost_head helper.
- Created next url function to be used in the ghost_head helper.
- Created ogType function to be used in the ghost_head helper.
- Created previous url function to be used in the ghost_head helper.
- Created published data function to be used in the ghost_head helper.
- Created rss url function to be used in the ghost_head helper.
- Created schema function to be used in the ghost_head helper.
- Created structured data function to be used in the ghost_head helper.
- Moved meta_title helper logic to a title function.
- Moved url helper logic to a url function.
- Wrote tests for all the new functions

This is just the first step. I plan on refactoring the ghost head to use these new functions.
2016-01-23 13:58:21 -08:00
Hannah Wolfe
323b57b439 Release should run all prod tasks
refs #6150

For some reason, release was only set to do the ember prod task, not all prod tasks
This ensures ghost-url gets minified and included as well as future proofing any other prod tasks
2015-12-15 21:33:10 +00:00
Austin Burdine
8f89997deb minify ghost.url.api in production
closes #6150
- clean up ghost.url.api script
- switch to inlining config and making the ghost-url.js file an external request
- add minification in production
2015-12-10 08:46:58 -06:00
Hannah Wolfe
739c7d36ed Streamline when grunt init is called in tests
- test-server only needs submodules to be updated
2015-12-04 19:53:50 +00:00
Kevin Ansfield
4a32098b64 Install client dependencies when running TEST_SUITE=lint build
refs #6161
- run the client initialization tasks as part of the `TEST_SUITE=lint` to fix problems with missing `ember-suave` jscs preset
2015-12-04 09:58:03 +00:00
Kevin Ansfield
a102eff0ed Separate the server/client/lint test suites on Travis
no issue
- add separate grunt tasks for validating all/client/server test suites
- modify `grunt validate` to respect the `TEST_SUITE` env var if present
- default to `TEST_SUITE=server` on Travis
- add an individual builds to the Travis matrix that test the client and run linting as separate jobs
- don't run `ensureConfig` task if we're performing client-only tests

Previously we were duplicating the client tests and linting for every node and database version in our build matrix. Duplicating those tasks a waste of time/resources as the client tests are now completely isolated from the server and so different node/database versions have no effect. This PR is an attempt at removing the duplication to speed up our Travis runs.
2015-11-30 15:21:08 +00:00
Kevin Ansfield
3d6856614f Use es6 across client and add ember-suave to enforce rules
no issue
- add ember-suave dependency
- upgrade grunt-jscs dependency
- add a new .jscsrc for the client's tests directory that extends from client's base .jscsrc
- separate client tests in Gruntfile jscs task so they pick up the test's .jscsrc
- standardize es6 usage across client
2015-11-30 10:41:01 +00:00
Sebastian Gierlinger
ac53fc9c3f Merge pull request #6119 from boennemann/chore-grunt-release
Dynamically build file patterns for release task
2015-11-24 11:14:08 +01:00
Stephan Bönnemann
c22c866e93 Dynamically build file patterns for release task
- converted release task to function task
- dynamically setting config for copy task by reading `.npmignore` on demand
- speeds up all other tasks because `.npmignore` is no longer read from filesystem
2015-11-23 22:45:48 +01:00
Hannah Wolfe
2aa16514a3 Rename post_count to count.posts
refs  #6009

- This is a straight rename, no functionality is added
- The dot syntax requires pre/post processing to convert the name
- This PR also includes several updates to the tests, as they weren't being run as part of Travis!
2015-11-20 14:59:58 +00:00
Austin Burdine
250edf2b06 add themes ajax helper
closes #5942
- adds helper script for calling the api in themes
- adds tests for said helper script
2015-11-19 07:13:54 -06:00
Hannah Wolfe
9c691f6d05 Don't run Casper.js tests by default
- remove casper tests from `grunt validate`
- the tests are still in the codebase & runnable manually for now
2015-10-12 18:01:52 +01:00
Gabor Javorszky
309356e90c Make grunt test fail if no filename provided
Closes #5885

Instead of hiding a notice in a sea of printed stack traces among the
eventual error, this change will cause grunt test to halt and output an
error message with some helpful info as to what went wrong.
2015-09-27 18:30:59 +01:00
Sebastian Gierlinger
cae46e9efe Optimize release dependencies
no issue
- added a new grunt task for npm dedupe
- added shell:dedupe to realease task
2015-09-23 15:21:11 +02:00
Austin Burdine
6c5fea40ca Remove auto-inclusion of jQuery via ghost_foot
closes #5298
- remove all harcoded instances of jQuery throughout the front-end of the blog
- add migration function to add cdn link to ghost_foot code injection when migrating up from version 003
- migration version bump
2015-09-02 13:39:22 +01:00
Jason Williams
f2c2d4ff24 Merge pull request #5616 from ErisDS/issue-5495
Don't escape path for ember
2015-08-03 15:05:03 -05:00