]> granicus.if.org Git - graphviz/commit
rewrite deployment CI task to create releases on Gitlab
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Tue, 1 Dec 2020 15:02:30 +0000 (07:02 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 20 Dec 2020 20:27:01 +0000 (12:27 -0800)
commitb443b70a828a34c79c71e41af9cb2eab7b950a14
tree072f3a5f1da09fe1263242aded8693d31d1c868e
parentf533150b22380027f7808e3898dcc9a28c75ce57
rewrite deployment CI task to create releases on Gitlab

Prior to this commit, the deployment CI task runs on a private runner and
uploads release artifacts to www2.graphviz.org. The SSH steps in the deployment
task are currently failing due to connectivity issues. The current maintainers
are unable to fix this as we do not have enough knowledge of how this work flow
was intended to function.

Apart from these concerns, Gitlab have recently introduced support for so-called
“generic packages” [0] to host binary artifacts directly on Gitlab (or its
underlying CDN) as well as the ability to programmatically create releases [1]
on the releases page of a project. The decision was made to simplify the
Graphviz infrastructure and host future releases (both stable and development)
on Gitlab.

This change rewrites the deployment task to (1) run on the Gitlab shared runner
using a release-cli Docker image, (2) upload package artifacts to Graphviz'
generic package, and (3) create a release from this for stable version numbers.

To comprehend the role the generic package container is playing here, note that
generic package version numbers are synthesized from commit SHA and are not
intended to be exposed to users. Users can browse the generic package page [2],
but are only ever expected to be interested in the latest version available
here. In contrast, version numbers on the release page [3] are intended to
correspond to Graphviz stable version numbers. ci/deploy.py handles mapping a
release on this page to its related (synthesized) generic package version.

Closes #1892.

  [0]: https://docs.gitlab.com/ee/user/packages/generic_packages/index.html
  [1]: https://gitlab.com/gitlab-org/release-cli/-/blob/master/docs/index.md
  [2]: https://gitlab.com/graphviz/graphviz/-/packages
  [3]: https://gitlab.com/graphviz/graphviz/-/releases
.gitlab-ci.yml
DEVELOPERS.md
ci/deploy.py [new file with mode: 0644]