You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by gi...@apache.org on 2020/12/29 13:02:32 UTC

[buildstream] branch chandan/automate-pypi-release created (now 865d5f4)

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a change to branch chandan/automate-pypi-release
in repository https://gitbox.apache.org/repos/asf/buildstream.git.


      at 865d5f4  .gitlab-ci.yml: Publish to PyPI when new tags are pushed

This branch includes the following new commits:

     new 865d5f4  .gitlab-ci.yml: Publish to PyPI when new tags are pushed

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[buildstream] 01/01: .gitlab-ci.yml: Publish to PyPI when new tags are pushed

Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch chandan/automate-pypi-release
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit 865d5f4357a5041163d4cbc0c4b359b280edae5a
Author: Chandan Singh <cs...@bloomberg.net>
AuthorDate: Fri Aug 24 22:15:00 2018 +0100

    .gitlab-ci.yml: Publish to PyPI when new tags are pushed
    
    Add a new CI job to publish souce distribution archive to PyPi any time
    new tags are pushed to the repository. Releases will be made on
    test.pypi.org first.
    
    Part of https://gitlab.com/BuildStream/buildstream/issues/587.
---
 .gitlab-ci.yml | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4e8603a..812d5aa 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,6 +14,9 @@ variables:
   PYTEST_ADDOPTS: "--color=yes"
   INTEGRATION_CACHE: "${CI_PROJECT_DIR}/cache/integration-cache"
   TEST_COMMAND: 'python3 setup.py test --index-url invalid://uri --addopts --integration'
+  TEST_PYPI_UPLOAD_URL: "https://test.pypi.org/legacy/"
+  TEST_PYPI_INDEX_URL: "https://test.pypi.org/simple/"
+  PYPI_UPLOAD_URL: "https://upload.pypi.org/legacy/"
 
 #####################################################
 #                  Prepare stage                    #
@@ -323,3 +326,33 @@ pages:
   - master
   except:
   - schedules
+
+# Release to PyPI, only for tags.
+#
+# TODO: To begin with, we only upload to test.pypi. Later we should also push
+# to real PyPI after verifying that it can be installed correctly.
+#
+pypi_release:
+  stage: post
+  dependencies:
+  - source_dist
+  script:
+  - |
+    if [[ ! "$CI_COMMIT_TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
+        echo "Not processing non-numeric tag: $CI_COMMIT_TAG for PyPI"
+        exit
+    fi
+    minor_version="$(echo "$CI_COMMIT_TAG" | cut -d. -f2)"
+    if [[ "$(( minor_version %2 ))" -ne 0 ]]; then
+        echo "Not uploading development release: $CI_COMMIT_TAG to PyPI"
+        exit
+    fi
+
+    # Credentials for PyPI are defined in secret CI variables "TWINE_USERNAME"
+    # and "TWINE_PASSWORD".
+    pip3 install twine
+    twine upload --repository-url "$TEST_PYPI_UPLOAD_URL" dist/*.tar.gz
+    pip3 install --extra-index-url "$TEST_PYPI_INDEX_URL" "BuildStream==$CI_COMMIT_TAG"
+    bst --version
+  only:
+  - tags