Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Digital.gov.bc.ca is a WordPress instance that is supported by both a content team and a development team. Each team has a workflow for introduces changes, and those workflows must be coordinated to allow for streamlined publishing.

Development Team Workflow

The Development team is responsible for maintaining both the infrastructure, and the themes and plugins. The infrastructure is maintained and deployed via a CI/CD pipeline that is controlled by Kustomize (COMING SOON: and ArgoCD). This pipeline (will) automatically check for updates of WordPress and any used plugins, and update deployments on OpenShift.

OpenShift

The OpenShift space contains 4 instances of WordPress.

  1. digital-dev: This is where updates will be automatically deployed, and new feature development can occur for the theme and custom plugins.

  2. digital-uat: Once a new feature is ready for testing, we can perform a back migration from production and combine it with new theme and plugin changes here to do some initial testing. This is a public site that may be unstable. Content work that is dependent on new features can be done here (only if necessary - to avoid synchronicity issues, production editing must be locked down while this is occurring, and we must do a forward-migration of content)

  3. digital-stage: Used as a stable environment for a pre-production release. Should contain an exact or near-exact copy of production, with any changes that are ready to be migrated to production. Used as a final QA environment.

  4. digital-prod: The live site. Theme and plugin specific development work should not occur here, and should be used for content development only.

***Since the occasion where we would need to do content work outside of production should be rare, we should be able to manage this with a single UAT instance.

Content Team Workflow

The content team will primarily work within the production instance of WordPress. The workflow needs to be determined by the content team, and will inherently be complex due to the inclusion of third-party contributors.

A suggested workflow was previously built out in a custom plugin, and reflects this Mural. The workflow may be different per team. We don’t need to implement this right now.

One of the requests of the content team was to have the ability to edit published pages without the changes being immediately reflected. This can be accomplished with a plugin, Such as Yoast Duplicate Post (Rewrite and Republish) or Revisionize.

It should be noted that these features and workflows only work in production. If the content team needs to make changes that are dependant on a new feature (and do that development in UAT), then we would need to pause third-party contributions, or otherwise redirect them to UAT to also perform their changes there. The author workflow would also be reflected there. Pipeline plugin? Content Blackout while changing in UAT?

Another request from the content team was to have a tree-style view of the pages in the admin dashboard. This can be accomplished with a plugin. Nested Pages - consider disabling drag + drop?

Lastly, it may be desirable to restrict the pages which a third-party contributor can edit/see on our wordpress instance. This could be accomplished with a paid plugin such as Role-Editor Pro, or using the free version in combination with some custom development. We should check to see if the paid role editor pro does everything we need with no custom development, and look into the procurement of that. If it requires any additional development, we can use the free version for role management, and add custom code for page restrictions based on roles.

  • No labels