This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow-publish.git
The following commit(s) were added to refs/heads/main by this push:
new 1a6d724 add workflow to publish airflow packages to Test PyPI (#7)
1a6d724 is described below
commit 1a6d724067bbcadfb890ede3225029a52c0e6ce8
Author: GPK <[email protected]>
AuthorDate: Thu Dec 19 20:42:42 2024 +0000
add workflow to publish airflow packages to Test PyPI (#7)
---
.github/workflows/test-pypi-airflow-publish.yml | 156 ++++++++++++++++++++++++
1 file changed, 156 insertions(+)
diff --git a/.github/workflows/test-pypi-airflow-publish.yml
b/.github/workflows/test-pypi-airflow-publish.yml
new file mode 100644
index 0000000..7bfd565
--- /dev/null
+++ b/.github/workflows/test-pypi-airflow-publish.yml
@@ -0,0 +1,156 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+---
+name: Publish Airflow packages to Test PyPI
+description: "Publish or verify svn artifacts"
+
+on:
+ workflow_dispatch:
+ inputs:
+ release-config:
+ description: "Path to the release config file"
+ required: true
+ default: "airflow-rc-config.yml"
+ type: choice
+ options:
+ - "airflow-rc-config.yml"
+ - "airflow-pypi-config.yml"
+ temp-dir:
+ description: >
+ Temporary directory to checkout the svn repo.
+ required: false
+ default: "asf-dist"
+ mode:
+ description: >
+ Mode to run the action, set mode to 'RELEASE' to publish the
packages to PyPI.
+ required: false
+ default: "VERIFY"
+ if-no-files-found:
+ description: >
+ upload artifacts action behavior if no files are found using the
provided path.
+ default: 'warn'
+ retention-days:
+ description: >
+ Duration after which artifact will expire in days. 0 means using
default retention.
+ default: '5'
+ compression-level:
+ description: >
+ The level of compression for artifact upload.
+ default: '6'
+ overwrite:
+ description: >
+ Overwrite the existing artifact with the same name.
+ default: 'false'
+ artifact-name:
+ description: >
+ The name of the artifact to be uploaded.
+ required: false
+ default: "pypi-packages"
+
+jobs:
+ release-checks:
+ outputs:
+ publisher-name: ${{ steps.config-parser.outputs.publisher-name }}
+ runs-on: ubuntu-20.04
+ steps:
+ - name: Checkout Code
+ uses: actions/checkout@v4
+ with:
+ persist-credentials: false
+
+ - name: Setup Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.11"
+
+ - name: "Config parser"
+ id: config-parser
+ uses: ./read-config
+ with:
+ release-config: ${{ inputs.release-config }}
+
+ - name: "Checkout svn ${{ steps.config-parser.outputs.publisher-url }}"
+ id: "svn-checkout"
+ uses: ./init
+ with:
+ temp-dir: ${{ inputs.temp-dir }}
+ repo-url: ${{ steps.config-parser.outputs.publisher-url }}
+ repo-path: ${{ steps.config-parser.outputs.publisher-path }}
+
+ - name: "Svn check"
+ id: "svn-check"
+ uses: ./svn
+ with:
+ svn-config: ${{ steps.config-parser.outputs.checks-svn }}
+ temp-dir: ${{ inputs.temp-dir }}
+ repo-path: ${{ steps.config-parser.outputs.publisher-path }}
+
+ - name: "Checksum check"
+ id: "checksum-check"
+ uses: ./checksum
+ with:
+ checksum-config: ${{ steps.config-parser.outputs.checks-checksum }}
+ temp-dir: ${{ inputs.temp-dir }}
+ repo-path: ${{ steps.config-parser.outputs.publisher-path }}
+
+ - name: "Signature check"
+ id: "signature-check"
+ uses: ./signature
+ with:
+ signature-config: ${{ steps.config-parser.outputs.checks-signature }}
+ temp-dir: ${{ inputs.temp-dir }}
+ repo-path: ${{ steps.config-parser.outputs.publisher-path }}
+
+ - name: "Find ${{ steps.config-parser.outputs.publisher-name }} packages"
+ id: "upload-artifacts"
+ uses: ./artifacts
+ with:
+ artifact-config: ${{ steps.config-parser.outputs.checks-artifact }}
+ temp-dir: ${{ inputs.temp-dir }}
+ mode: ${{ inputs.mode }}
+ publisher-name: ${{ steps.config-parser.outputs.publisher-name }}
+ repo-path: ${{ steps.config-parser.outputs.publisher-path }}
+ if-no-files-found: ${{ inputs.if-no-files-found }}
+ retention-days: ${{ inputs.retention-days }}
+ compression-level: ${{ inputs.compression-level }}
+ overwrite: ${{ inputs.overwrite }}
+ artifact-name: ${{ inputs.artifact-name }}
+
+
+ publish-to-pypi:
+ name: Publish svn packages to PyPI
+ runs-on: ubuntu-20.04
+ if: inputs.mode == 'RELEASE' && success()
+ needs:
+ - release-checks
+ permissions:
+ id-token: write # IMPORTANT: mandatory for trusted publishing
+
+ steps:
+ - name: "Download release distributions for ${{
needs.release-checks.outputs.publisher-name }}"
+ uses: actions/download-artifact@v4
+ with:
+ name: ${{ inputs.artifact-name }}
+ merge-multiple: true
+ path: ./dist
+
+ - name: "Publishing ${{ needs.release-checks.outputs.publisher-name }}
to Test PyPI"
+ uses: pypa/gh-action-pypi-publish@release/v1
+ with:
+ packages-dir: "./dist"
+ repository-url: https://test.pypi.org/legacy/
\ No newline at end of file