boostorg / release-tools

5 stars 24 forks source link

github releases #22

Closed sdarwin closed 3 years ago

sdarwin commented 3 years ago

Implements github releases using the gh tool, which is the official supported github cli.

There are two alternatives when publishing boost github releases.

  1. Add them to https://github.com/boostorg/boost
  2. Create a separate repo for releases such as https://github.com/boostorg/boost-releases

The advantage of the first method is that it's expected to find the binaries in the same place as the source. Simple and convenient. The advantage of the second method is that it's more secure. Access tokens for the main github repository would not be in CircleCI, where there's a small chance they could get hacked. Either choice is possible with the scripts. Set github_releases_main_repo=True to use https://github.com/boostorg/boost Set github_releases_main_repo=False to use another repo. Make sure to create the new repository.

Dev snapshots are published with ci_boost_release.py

Versioned releases are published in conjunction with github_releases.py. Let me know if github_releases.py needs to be modified or integrated with other scripts.

Add environment variables in CircleCI:

GH_USER: user account GH_TOKEN: authentication token

Here is how it could be feasible to proceed with using the main repo: There's a feature in github called "Branch protection rules", in Settings->Branches. Turn this on for "master" and "develop" to prevent forced pushes and branch deletions. Maybe these steps have already been done. Create a new token for CircleCI that has standard access but not admin access.

mclow commented 3 years ago

This also adds support for JFrog Artifactory.