Summary
There should be a simple and easy way for uploads to Amazon S3 and PackageCloud.io to be disabled in CI. This allows CI to pass without paying for paid services just to hack on Atom in a fork.
Motivation
@aminya and I have been working on a fork of Atom. When running the CI, we have noticed that the "Atom Production Branches" and "Atom Nightly" pipelines require authentication to a paid Amazon S3 account and a paid PackageCloud.io account.
Having a good way for CI to run without attempting to upload to these services is friendly to forks. We could roll our own solution to this at our fork, but any other fork that might come along after us would have to reinvent that wheel, so it would be amazing to centralize the approach here at upstream.
When editing the CI files, we are still hoping to upstream our changes. But this is something I would expect upstream to care fairly strongly about, since it is part of the official release process for stable/official Atom. Rather than try to predict what upstream wants, it seems prudent to ask about it and start a discussion.
Describe alternatives you've considered
We could disable uploading to PackageCloud.io by editing the flags in the pipeline .yml configs, used to call script/vsts/upload-artifacts.js. But these changes would not be suitable for upstreaming. And this could be prone to merge conflicts with upstream if you ever need to update the pipeline .yml files.
This also does not disable uploads to Amazon S3, so editing script/vsts/upload-artifacts.js is required in any case.
In order to avoid merge conflicts and the productivity loss of fragmented and forked CI configs, we are hoping to avoid carrying patches for CI for ourselves.
Additional context
We have been working on an upstream-friendly implementation of these changes here: atom-community#66
This WIP implementation is designed to require no changes (can be merged as-is, "just works") by upstream, while offering forks an easy way to toggle off uploads to paid services (S3 and PackageCloud.io).
With the current WIP design, forks would just need to set a variable (in the Azure DevOps UI) SKIP_UPLOADING_TO = e.g. s3,packagecloud to turn any given service off.
Summary
There should be a simple and easy way for uploads to Amazon S3 and PackageCloud.io to be disabled in CI. This allows CI to pass without paying for paid services just to hack on Atom in a fork.
Motivation
@aminya and I have been working on a fork of Atom. When running the CI, we have noticed that the "Atom Production Branches" and "Atom Nightly" pipelines require authentication to a paid Amazon S3 account and a paid PackageCloud.io account.
Having a good way for CI to run without attempting to upload to these services is friendly to forks. We could roll our own solution to this at our fork, but any other fork that might come along after us would have to reinvent that wheel, so it would be amazing to centralize the approach here at upstream.
When editing the CI files, we are still hoping to upstream our changes. But this is something I would expect upstream to care fairly strongly about, since it is part of the official release process for stable/official Atom. Rather than try to predict what upstream wants, it seems prudent to ask about it and start a discussion.
Describe alternatives you've considered
We could disable uploading to PackageCloud.io by editing the flags in the pipeline
.ymlconfigs, used to callscript/vsts/upload-artifacts.js. But these changes would not be suitable for upstreaming. And this could be prone to merge conflicts with upstream if you ever need to update the pipeline.ymlfiles.This also does not disable uploads to Amazon S3, so editing
script/vsts/upload-artifacts.jsis required in any case.In order to avoid merge conflicts and the productivity loss of fragmented and forked CI configs, we are hoping to avoid carrying patches for CI for ourselves.
Additional context
We have been working on an upstream-friendly implementation of these changes here: atom-community#66
This WIP implementation is designed to require no changes (can be merged as-is, "just works") by upstream, while offering forks an easy way to toggle off uploads to paid services (S3 and PackageCloud.io).
With the current WIP design, forks would just need to set a variable (in the Azure DevOps UI)
SKIP_UPLOADING_TO= e.g.s3,packagecloudto turn any given service off.