natcap / invest

InVEST®: models that map and value the goods and services from nature that sustain and fulfill human life.
Apache License 2.0
166 stars 68 forks source link

Minor updates to bugfix automation #144

Closed phargogh closed 4 years ago

phargogh commented 4 years ago

In recent discussions, we've decided to make a few minor changes to how release automation operates:

phargogh commented 4 years ago

Working on this in my fork on task/144-minor-updates-to-bugfix-automation

phargogh commented 4 years ago

Plan for improved release automation

Objective

The software team should be in charge of deciding whether and when to do a release. When we decide a release should take place, automation should be in place to make everything happen as expected.

Planned Pause Points

The automation workflow should have a few pause points, opportunities to decide whether a release should proceed.

  1. Before the release process starts, we would decide whether a release should take place at all.
  2. After creating the autorelease branch, release tag and committing changes from the first release script. This allows us to decide whether the changes should be pushed, where the changes should be pushed (e.g. fork vs upstream), or if additional changes need to be made.
  3. After the repository has been tagged and binaries have been built, we should have an opportunity to decide whether to publish the release.

Automation

Initiate a Release

When we decide to initiate a release, the release manager will run a script locally to initiate the release process.

Assumptions:

Invocation: ./scripts/release-1-initiate.sh <version>

What the script will do:

Commit the changes

Once the script has finished, it'll be up to the user to commit these changes, but we can provide helpful git commands in ./scripts/release-2-commit.sh <version> to:

When the changes are pushed, the push should then trigger a new build of the tagged revision. Artifacts will be published to GCS.

Publish a release

Assumptions:

Invocation: ./scripts/release-3-publish.sh <version>

What the script will do:

Future possibilities

phargogh commented 4 years ago

I think we're all good to go on this at the moment!