smithmicro/mapbox-gl-circle

Replace Jenkins CI/CD with GitHub Actions CI/CD

mblomdahl opened this issue · 3 comments

Initially brought up during review of PR #86, the current CI/CD via Jenkins is broken and needs a replacement to continue structured and robust maintenance of this repository.

Draft acceptance criterion:

  • Document how to add the necessary NPM credentials to the repo, replacing the current NPM_TOKEN = credentials('mblomdahl_npm') secret in Jenkinsfile L#131
  • Evaluate and propose alternative to the current code for generating unique build identifiers, Jenkinsfile L#11-L#67
  • Building from the release/x.y.z branch should push a release candidate to NPM
  • Building from the master branch should push a release to NPM

Ping @gleite-smsi FYI!

Nice Github Actions are cool :)

Nice Github Actions are cool :)

It is... Need a React app? GitHub Actions have you covered! 😁 https://github.com/mkdevops-se/web-template-react

/.../

Draft acceptance criterion:

  • Document how to add the necessary NPM credentials to the repo, replacing the current NPM_TOKEN = credentials('mblomdahl_npm') secret in Jenkinsfile L#131
  • Evaluate and propose alternative to the current code for generating unique build identifiers, Jenkinsfile L#11-L#67
  • Building from the release/x.y.z branch should push a release candidate to NPM
  • Building from the master branch should push a release to NPM

/.../

Upon reading further on how to implement this, imagine my surprise when reviewing my favorite Atlassian document covering Gitflow Workflow. In their latest version they start off with the following ingress:

Gitflow Workflow

Gitflow is a legacy Git workflow that was originally a disruptive and novel strategy for managing Git branches. Gitflow has fallen in popularity in favor of trunk-based workflows, which are now considered best practices for modern continuous software development and DevOps practices. Gitflow also can be challenging to use with CI/CD. This post details Gitflow for historical purposes.

So, if not even Atlassian got my back on this topic, it's time to abandon the Gitflow Workflow idea. I will delete the develop branch and redefine the final acceptance criterion for this ticket as follows:

  • Builds from the master branch should publish a pre-release to NPM and GitHub Packages [GHP]
  • GitHub Releases on the master branch should publish a release to NPM and GitHub Packages [GHP]
  • The scripts that are available to Continuous Integration (compile, minify, lint & API docs) should be run on any branch or pull request
  • The GitHub Actions @actions-user must be able to commit version increments directly to the main branch, bypassing the pull request requirement that applies to other users

(Ping to old maintainers @carlba & @akebrissman, FYI!)