profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/benilovj/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

benilovj/ascii-data-tools 11

A suite of tools for identifying, reading, enriching and editing ASCII data records.

benilovj/nanoc-tilt 2

A filter for the nanoc (https://github.com/ddfreyne/nanoc), a static page generator, that lets you render your files with tilt (https://github.com/rtomayko/tilt).

benilovj/cucumber 1

BDD that talks to domain experts first and code second

benilovj/dm-migrations 1

DataMapper plugin for writing and speccing migrations

benilovj/fitnesse 1

FitNesse -- The Acceptance Test Wiki

benilovj/gherkin 1

A fast Gherkin parser in Ragel (The parser behind Cucumber)

benilovj/HTML5-Clear 1

A replica of the Clear iphone app in HTML5

benilovj/MacRuby 1

MacRuby is an implementation of Ruby 1.9 directly on top of Mac OS X core technologies such as the Objective-C runtime and garbage collector, the LLVM compiler infrastructure and the Foundation and ICU frameworks.

benilovj/MultiContactsSelector-ios 1

iOS Module - Select your contacts' telephone like Whatsapp application + Multiple telephone selection

startedFortAwesome/Font-Awesome

started time in 21 hours

PR opened DFE-Digital/get-help-with-tech

[1634] add duplicate status for ExtraMobileDataRequests

Context

Trello card 1634 - We've had a lot of duplicate requests in the system, due at least in part to a bug fixed in #1478. I've removed most of the duplicate requests where it was clear which ones should be kept and which deleted, but there will still be some (around a couple of hundred) where it was not clear.

MNOs have been using various statuses for the duplicates - some problem_no_match_for_number, some problem_ineligible, some problem_other, etc - but it would be much clearer for everyone involved if they had an explicit duplicate status to use for them.

Changes proposed in this pull request

Add problem_duplicate status to ExtraMobileDataRequests

Guidance to review

Needs content review from @Lloyd-K or @emmajhf

Screenshots:

Screenshot from 2021-02-27 17-04-51 Screenshot from 2021-02-27 17-04-07 Screenshot from 2021-02-27 17-03-51 Screenshot from 2021-02-27 17-09-00

+51 -3

0 comment

7 changed files

pr created time in a day

push eventDFE-Digital/get-help-with-tech

Al Davidson

commit sha df8476b6038c49bd74378e85f843b78c58f73ad1

add duplicate status for ExtraMobileDataRequests

view details

push time in a day

push eventDFE-Digital/govuk-components

dependabot-preview[bot]

commit sha 7eddb68ce55e20951a1323194df2cdd2c4a03172

Update view_component requirement from >= 2.22.1, < 2.26.0 to >= 2.22.1, < 2.27.0 Updates the requirements on [view_component](https://github.com/github/view_component) to permit the latest version. - [Release notes](https://github.com/github/view_component/releases) - [Changelog](https://github.com/github/view_component/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/view_component/compare/v2.25.1...v2.26.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

view details

Peter Yates

commit sha 3bd73edc97f3dea7d01e9dd38f45b0d867b9f36c

Merge pull request #113 from DFE-Digital/dependabot/bundler/view_component-2.26.1 Update view_component requirement from >= 2.22.1, < 2.26.0 to >= 2.22.1, < 2.27.0

view details

push time in a day

delete branch DFE-Digital/govuk-components

delete branch : dependabot/bundler/view_component-2.26.1

delete time in a day

PR merged DFE-Digital/govuk-components

Update view_component requirement from >= 2.22.1, < 2.26.0 to >= 2.22.1, < 2.27.0 dependencies

Updates the requirements on view_component to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/github/view_component/releases">view_component's releases</a>.</em></p> <blockquote> <h2>v2.26.1</h2> <ul> <li> <p>Fix bug that raises when trying to use a collection before the component has been compiled.</p> <p><em>Blake Williams</em></p> </li> </ul> <h2>v2.26.0</h2> <ul> <li> <p>Lazily evaluate component <code>content</code> in <code>render?</code>, preventing the <code>content</code> block from being evaluated when <code>render?</code> returns false.</p> <p><em>Blake Williams</em></p> </li> <li> <p>Do not generate template when using <code>--inline</code> flag.</p> <p><em>Hans Lemuet</em></p> </li> <li> <p>Add <code>--inline</code> option to the Haml and Slim generators</p> <p><em>Hans Lemuet</em></p> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/github/view_component/blob/main/CHANGELOG.md">view_component's changelog</a>.</em></p> <blockquote> <h2>2.26.1</h2> <ul> <li> <p>Fix bug that raises when trying to use a collection before the component has been compiled.</p> <p><em>Blake Williams</em></p> </li> </ul> <h2>2.26.0</h2> <ul> <li> <p>Lazily evaluate component <code>content</code> in <code>render?</code>, preventing the <code>content</code> block from being evaluated when <code>render?</code> returns false.</p> <p><em>Blake Williams</em></p> </li> <li> <p>Do not generate template when using <code>--inline</code> flag.</p> <p><em>Hans Lemuet</em></p> </li> <li> <p>Add <code>--inline</code> option to the Haml and Slim generators</p> <p><em>Hans Lemuet</em></p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/github/view_component/commit/ef5a5f0132479fd71044cda9cfd39fa01e71af25"><code>ef5a5f0</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/github/view_component/issues/645">#645</a> from github/release-v2.26.1</li> <li><a href="https://github.com/github/view_component/commit/fb0f71daac0c165e18df602a035dad2c36aa658e"><code>fb0f71d</code></a> release v2.26.1</li> <li><a href="https://github.com/github/view_component/commit/024d12c1e1459e8e30359fd82bd382e5e9176279"><code>024d12c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/github/view_component/issues/644">#644</a> from github/bmw/param-fix</li> <li><a href="https://github.com/github/view_component/commit/d96d6dbff5667b9afaf24b7fd31875fa117895c2"><code>d96d6db</code></a> Merge branch 'main' into bmw/param-fix</li> <li><a href="https://github.com/github/view_component/commit/1242066fdac16a31ef805c989de7e6f63994da48"><code>1242066</code></a> Add changelog entry</li> <li><a href="https://github.com/github/view_component/commit/53992be98461a7d405ceb1d2fa5db07b28802d42"><code>53992be</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/github/view_component/issues/643">#643</a> from github/slot-without-content-block</li> <li><a href="https://github.com/github/view_component/commit/0a989ad8a8d0191f073cfb5658584e234319f113"><code>0a989ad</code></a> Decouple collection parameters from compilation</li> <li><a href="https://github.com/github/view_component/commit/1a9717d8d13c2dc5b66f91ceb006969e0e2e66c2"><code>1a9717d</code></a> remove warning when slot does not receive a content block</li> <li><a href="https://github.com/github/view_component/commit/a855b96cccff379ac6d6a8af4267161f48cdff1a"><code>a855b96</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/github/view_component/issues/641">#641</a> from github/release-v2.26.0</li> <li><a href="https://github.com/github/view_component/commit/5f3b36ead8c7a35e84d5f0ee923c187f9801bbac"><code>5f3b36e</code></a> release v2.26.0</li> <li>Additional commits viewable in <a href="https://github.com/github/view_component/compare/v2.25.1...v2.26.1">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
  • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:

  • Update frequency (including time of day and day of week)
  • Pull request limits (per update run and/or open at any time)
  • Automerge options (never/patch/minor, and dev/runtime dependencies)
  • Out-of-range updates (receive only lockfile updates, if desired)
  • Security updates (receive only security updates, if desired)

</details>

+4 -4

0 comment

2 changed files

dependabot-preview[bot]

pr closed time in a day

PullRequestEvent

create barnchalphagov/govuk-puppet

branch : msw/remove-transition-cookies

created branch time in a day

Pull request review commentDFE-Digital/get-help-with-tech

[1449] Opening schools adds related schools

+class CreateRelations < ActiveRecord::Migration[6.1]+  def change+    create_table :relations do |t|

ditto

asmega

comment created time in a day

Pull request review commentDFE-Digital/get-help-with-tech

[1449] Opening schools adds related schools

+class Relation < ApplicationRecord

Agree with @tonyheadford here - Relations sounds too much like a generic ActiveRecord thing. I'd favour SchoolLink, but any of the options Tony suggests would be fine

asmega

comment created time in a day

push eventDFE-Digital/get-help-with-tech

dependabot-preview[bot]

commit sha 60484c950d503c1e6e75872c0f4303ce0c55ef13

Bump config from 2.2.3 to 3.0.0 (#1342) Bumps [config](https://github.com/rubyconfig/config) from 2.2.3 to 3.0.0. - [Release notes](https://github.com/rubyconfig/config/releases) - [Changelog](https://github.com/rubyconfig/config/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubyconfig/config/compare/2.2.3...3.0.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

view details

push time in a day

delete branch DFE-Digital/get-help-with-tech

delete branch : dependabot/bundler/config-3.0.0

delete time in a day

PR merged DFE-Digital/get-help-with-tech

Bump config from 2.2.3 to 3.0.0 dependencies ruby

Bumps config from 2.2.3 to 3.0.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rubyconfig/config/blob/master/CHANGELOG.md">config's changelog</a>.</em></p> <blockquote> <h2>3.0.0</h2> <h3>BREAKING CHANGES</h3> <ul> <li>After upgrade behaviour of <code>to_h</code> would change and match behaviour of <code>to_hash</code>. Check <a href="https://github-redirect.dependabot.com/rubyconfig/config/issues/217#issuecomment-741953382">#217</a> for more details.</li> <li><code>Config::Options#load_env!</code> and <code>Config::Options#reload_env!</code> have been removed. If you need to reload settings after modifying the <code>ENV</code> hash, use <code>Config.reload!</code> or <code>Config::Options#reload!</code> instead.</li> </ul> <h3>Bug fixes</h3> <ul> <li>Added alias <code>to_h</code> for <code>to_hash</code> (<a href="https://github-redirect.dependabot.com/railsconfig/config/issues/277">#277</a>)</li> </ul> <h3>Changes</h3> <ul> <li>Add <code>Config::Sources::EnvSource</code> for loading settings from flat <code>Hash</code>es with <code>String</code> keys and <code>String</code> values, such as from AWS SecretsManager (<a href="https://github-redirect.dependabot.com/railsconfig/config/pull/299">#299</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/rubyconfig/config/commit/a0339bb2af0838afca908a9d724ffb70994cf27c"><code>a0339bb</code></a> Bump to version 3.0.0</li> <li><a href="https://github.com/rubyconfig/config/commit/351c819f75d53aa5621a226b5957c79ac82ded11"><code>351c819</code></a> Refactor environment variable handling into new Sources::EnvSource (<a href="https://github-redirect.dependabot.com/rubyconfig/config/issues/299">#299</a>)</li> <li><a href="https://github.com/rubyconfig/config/commit/2748274b187aa86e71d8b88951a9ab57d7f988d0"><code>2748274</code></a> Update README badges</li> <li><a href="https://github.com/rubyconfig/config/commit/c53194dff361859cedfd22092c58679a203c374e"><code>c53194d</code></a> Run tests in random order (<a href="https://github-redirect.dependabot.com/rubyconfig/config/issues/298">#298</a>)</li> <li><a href="https://github.com/rubyconfig/config/commit/c59d105a870032c8ed1796d6c3f5d8e153ef991c"><code>c59d105</code></a> Additional tests for parsing values (<a href="https://github-redirect.dependabot.com/rubyconfig/config/issues/296">#296</a>)</li> <li><a href="https://github.com/rubyconfig/config/commit/d2c53565f84195e78e87d22f902ff1325ff5b692"><code>d2c5356</code></a> Added alias <code>to_h</code> for <code>to_hash</code> (<a href="https://github-redirect.dependabot.com/rubyconfig/config/issues/297">#297</a>)</li> <li>See full diff in <a href="https://github.com/rubyconfig/config/compare/2.2.3...3.0.0">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
  • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:

  • Update frequency (including time of day and day of week)
  • Pull request limits (per update run and/or open at any time)
  • Automerge options (never/patch/minor, and dev/runtime dependencies)
  • Out-of-range updates (receive only lockfile updates, if desired)
  • Security updates (receive only security updates, if desired)

</details>

+11 -15

0 comment

1 changed file

dependabot-preview[bot]

pr closed time in a day

push eventalphagov/content-publisher

Kevin Dew

commit sha 1aa3847d2b8095c20bf1668eee4d1a2cee08526b

Fix ugly border that has crept into documents This was caused by a change to the underlying component to always insert a top border. There was then a fix applied in https://github.com/alphagov/govuk_publishing_components/pull/1907 which needs to be manually applied.

view details

Kevin Dew

commit sha f2ab6383063b6c478285899386dd4a612ee0e695

Merge pull request #2269 from alphagov/remove-top-margin-on-document-list Fix ugly border that has crept into documents

view details

push time in 2 days

push eventalphagov/content-publisher

Kevin Dew

commit sha 1aa3847d2b8095c20bf1668eee4d1a2cee08526b

Fix ugly border that has crept into documents This was caused by a change to the underlying component to always insert a top border. There was then a fix applied in https://github.com/alphagov/govuk_publishing_components/pull/1907 which needs to be manually applied.

view details

Kevin Dew

commit sha f2ab6383063b6c478285899386dd4a612ee0e695

Merge pull request #2269 from alphagov/remove-top-margin-on-document-list Fix ugly border that has crept into documents

view details

push time in 2 days

push eventalphagov/content-publisher

Kevin Dew

commit sha 1aa3847d2b8095c20bf1668eee4d1a2cee08526b

Fix ugly border that has crept into documents This was caused by a change to the underlying component to always insert a top border. There was then a fix applied in https://github.com/alphagov/govuk_publishing_components/pull/1907 which needs to be manually applied.

view details

Kevin Dew

commit sha f2ab6383063b6c478285899386dd4a612ee0e695

Merge pull request #2269 from alphagov/remove-top-margin-on-document-list Fix ugly border that has crept into documents

view details

push time in 2 days

created tagalphagov/content-publisher

tagrelease_1981

Publishing application for GOV.UK

created time in 2 days

push eventalphagov/content-publisher

Kevin Dew

commit sha 1aa3847d2b8095c20bf1668eee4d1a2cee08526b

Fix ugly border that has crept into documents This was caused by a change to the underlying component to always insert a top border. There was then a fix applied in https://github.com/alphagov/govuk_publishing_components/pull/1907 which needs to be manually applied.

view details

Kevin Dew

commit sha f2ab6383063b6c478285899386dd4a612ee0e695

Merge pull request #2269 from alphagov/remove-top-margin-on-document-list Fix ugly border that has crept into documents

view details

push time in 2 days

delete branch alphagov/content-publisher

delete branch : remove-top-margin-on-document-list

delete time in 2 days

PR merged alphagov/content-publisher

Fix ugly border that has crept into documents

This was caused by a change to the underlying component to always insert a top border. There was then a fix applied in https://github.com/alphagov/govuk_publishing_components/pull/1907 which needs to be manually applied.

Before:

Screenshot 2021-02-26 at 18 19 55

After:

Screenshot 2021-02-26 at 18 19 33

⚠️ This repo is Continuously Deployed: make sure you follow the guidance ⚠️

+1 -0

0 comment

1 changed file

kevindew

pr closed time in 2 days

PR opened alphagov/content-publisher

Fix ugly border that has crept into documents

This was caused by a change to the underlying component to always insert a top border. There was then a fix applied in https://github.com/alphagov/govuk_publishing_components/pull/1907 which needs to be manually applied.

Before:

Screenshot 2021-02-26 at 18 19 55

After:

Screenshot 2021-02-26 at 18 19 33

⚠️ This repo is Continuously Deployed: make sure you follow the guidance ⚠️

+1 -0

0 comment

1 changed file

pr created time in 2 days

create barnchalphagov/content-publisher

branch : remove-top-margin-on-document-list

created branch time in 2 days

push eventalphagov/govuk-puppet

Stephen Ford

commit sha a5d15a9acd8a0df68efee9904b559bbd531344ed

Moving gcloud_auth.json to somewhere better

view details

push time in 2 days

create barnchministryofjustice/hmpps-steel-thread

branch : update-index-notes

created branch time in 2 days

created tagalphagov/govuk-puppet

tagrelease_23539

Puppet manifests used to provision the main GOV.UK web stack

created time in 2 days

delete branch alphagov/govuk-puppet

delete branch : supervised-scripts

delete time in 2 days

push eventalphagov/govuk-puppet

Kevin Dew

commit sha 3c87be0ba79e57e4a8752cef13a81d88a4a7e8fe

Add script to supervise initctl This adds a script to wrap around the calls made to "initctl start $app", "initctl restart $app" and "initctl reload $app" as part of an application deployment. This script adds the ability to monitor that these calls result in a new running process with any old processes ending. It is only intended for apps that expose their process id in a pid file at /var/run/$app/app.pid. To start an app `sudo govuk_supervised_initctl start $app` is run. This will run `initctl start` for the particular app and check that after a short wait (10 seconds) that the pidfile for the app is a running process. Prior to starting the app the wrapper will confirm if the process is already running. If it turns out that upstart thinks a process is running when the pid isn't actually running, the wrapper will execute `initctl stop` to avoid getting stuck in a loop where this wrapper and upstart disagree on a processes state (this can happen for unicorn herder [1] managed GOV.UK apps that encounter syntax errors). The inverse can also occur where a process is running but upstart is not aware of it, however this is much less likely to occur, as it can't be caused by the deployed application, so a simpler exit-with-error strategy is used. To restart an app `sudo govuk_supervised_initctl restart $app` is run. This will check that a new process is started and that the old process has stopped. This wraps around the `initctl restart` command, with a similar approach to `start` where there is a 10 second wait before the processes are checked. In order to run this command the old process will need to be already running, therefore this call should be combined with `govuk_supervised_initctl start` (for example: `sudo govuk_supervised_initctl start $app || sudo govuk_supervised_initctl restart $app`) To reload an app this script ports the behaviour from `govuk_unicorn_reload` and supersedes that script (once this change is applied I'll remove that from this repo). Compared to the start and restart scripts this is a more involved process of running a loop for 3 minutes while waiting for the evidence that a new process is running and the old process has stopped. There is more information on that script in it's introductory commit message [2]. --- The motivation to add this script is to support continuous deployment on GOV.UK. In particular, the need to know that a service is successfully running after a restart [3]. I felt the most consistent way this could be solved was by applying a wrapper command rather than modifying the deployment scripts for services specifically. This wrapper is also helpful for the other GOV.UK app services as it will fail a deployment if these fail to start which will mean we know of a problem sooner. This wrapper feels like something that shouldn't really be needed for processes nicely integrated with upstart and, ideally, you'd want upstart to take care of these concerns. However, this acts as a mechanism to paper over the cracks in GOV.UK's integration (or my lack of upstart knowledge, you decide). I expect this wrapper to be applied by changing the Capistrano deployment scripts [4] from: ``` if fetch(:perform_hard_restart, false) run "sudo initctl start #{application} 2>/dev/null || sudo initctl restart #{application}" else run "sudo initctl start #{application} 2>/dev/null || sudo govuk_unicorn_reload #{application}" end ``` to: ``` if fetch(:perform_hard_restart, false) run "sudo govuk_supervised_initctl start #{application} || sudo govuk_supervised_initctl restart #{application}" else run "sudo govuk_supervised_initctl start #{application} || sudo govuk_supervised_initctl reload #{application}" end ``` As this will need to be run via sudo I have added this script to the list of executables the deploy user can run as sudo. [1]: https://github.com/gds-operations/unicornherder [2]: https://github.com/alphagov/govuk-puppet/commit/a3b33f09fc0fda565581dc593df1f98c08a9167b [3]: https://github.com/alphagov/govuk-rfcs/blame/master/rfc-128-continuous-deployment.md#L143 [4]: https://github.com/alphagov/govuk-app-deployment/blob/e3f0bb339b60021fb0663aa9868cede064e8c1cd/recipes/ruby.rb#L20-L27

view details

Kevin Dew

commit sha d1c45c9740ec052835055ba1d8e2da76ec6c2193

Merge pull request #10952 from alphagov/supervised-scripts Add script to supervise initctl

view details

push time in 2 days

PR merged alphagov/govuk-puppet

Add script to supervise initctl

Trello: https://trello.com/c/cwsh79vA/200-rollout-of-continuous-deployment

This adds a script to wrap around the calls made to "initctl start $app", "initctl restart $app" and "initctl reload $app" as part of an application deployment. This script adds the ability to monitor that these calls result in a new process that is actually running and the old process ending.

The motivation to add this is to support continuous deployment on GOV.UK. In particular the need to know that a service is successfully running after a restart 1. I felt the most consistent way this could be solved was by applying a wrapper command rather than modifying the deployment scripts for services specifically. This wrapper is also helpful for the other major GOV.UK app services as it will fail a deployment if these fail to start which will mean we know of a problem sooner.

I expect this to be applied by changing 2 from:

if fetch(:perform_hard_restart, false)
  run "sudo initctl start #{application} 2>/dev/null || sudo initctl restart #{application}"
else
  run "sudo initctl start #{application} 2>/dev/null || sudo govuk_unicorn_reload #{application}"
end

to:

if fetch(:perform_hard_restart, false)
  run "sudo govuk_supervised_initctl start #{application} || sudo govuk_supervised_initctl restart #{application}"
else
  run "sudo govuk_supervised_initctl start #{application} || sudo govuk_supervised_initctl reload #{application}"
end

I'm pretty convinced that this wrapper script is rather a nasty way to solve these problems and I expect that it's probably resolved with better/newer tools. It seems strange that upstart doesn't realise it started something that failed instantly - maybe systemd knows how to deal with that? I hope and expect this script to only live as long as we continue using Trusty.

Note this script supersedes govuk_unicorn_reload and once things are migrated to this I will remove that.

+164 -0

4 comments

3 changed files

kevindew

pr closed time in 2 days