In the spirt of our deb and rpm packaging, I have created a Dockerized approach to automate* the publishing of deb and rpm packages to the Packages.Microsoft repository. Automation is needed to support the very long list of Linux distributions we've previously supported. A future PR will provide improved testing for our supported Linux distributions.
* The Repo CLI used to publish packages requires manual installation. This solution is not perfectly automated due to this complexity. Therefore, a step-by-step guide is provided.
Details of this PR:
Dockerfile which creates container for publishing. Packages.Microsoft provides a Repo CLI API for publishing packages, which requires an AMD64 environment. We use a Dockerfile to create the staging environment needed for Repo CLI installation and script automation.
publish.sh script uploads to either testing or prod. When called in the pre-built Docker container, this script will publish a deb or rpm to each supported package in our json files. It requires an argument for specifying either 'testing' or 'prod', and will not execute unless specified.
JSON files for testing and prod-supported repos. The objects refers to identifiers known by Packages.Microsoft, which are pulled during publish.sh execution. Each entity represents a Linux distribution where we've previously published mssql-cli, or its future versions we've yet to support.
Step-by-step docs. A README is provided to get the Docker container up and running, to install the Repo CLI, and to execute the publish.sh script.
Folder organization changes. A new 'release_scripts' folder has been added to the repo root, where automated tasks for publishing may reside (currently hosts a 'Packages.Microsoft' folder, only).
In the spirt of our deb and rpm packaging, I have created a Dockerized approach to automate* the publishing of deb and rpm packages to the Packages.Microsoft repository. Automation is needed to support the very long list of Linux distributions we've previously supported. A future PR will provide improved testing for our supported Linux distributions.
* The Repo CLI used to publish packages requires manual installation. This solution is not perfectly automated due to this complexity. Therefore, a step-by-step guide is provided.
Details of this PR:
publish.sh
execution. Each entity represents a Linux distribution where we've previously published mssql-cli, or its future versions we've yet to support.publish.sh
script.