forked from apache/beam
-
Notifications
You must be signed in to change notification settings - Fork 0
87 lines (77 loc) · 3.42 KB
/
deploy_release_candidate_pypi.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
name: deploy_release_candidate_pypi
# Workflow added after https://github.com/apache/beam/commit/4183e747becebd18becee5fff547af365910fc9c
# If help is needed debugging issues, you can view the release guide at that commit for guidance on how to do this manually.
# (https://github.com/apache/beam/blob/4183e747becebd18becee5fff547af365910fc9c/website/www/site/content/en/contribute/release-guide.md)
on:
workflow_dispatch:
inputs:
RELEASE:
description: Beam version of current release (e.g. 2.XX.0)
required: true
default: '2.XX.0'
RC:
description: Integer RC version for the release (e.g. 3 for RC3)
required: true
PYPI_API_TOKEN:
description: PyPi API token to perform the PyPi upload with
required: true
env:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
jobs:
deploy_release_candidate_pypi:
runs-on: [self-hosted, ubuntu-20.04, main]
steps:
- name: Mask PyPi id/password
run: |
# Workaround for Actions bug - https://github.com/actions/runner/issues/643
PYPI_API_TOKEN=$(jq -r '.inputs.PYPI_API_TOKEN' $GITHUB_EVENT_PATH)
echo "::add-mask::$PYPI_API_TOKEN"
- name: Checkout
uses: actions/checkout@v4
- name: Setup environment
uses: ./.github/actions/setup-environment-action
with:
python-version: 3.11
- name: Install dependencies
run: |
pip install python-dateutil
pip install requests
pip install twine
- name: Deploy to Pypi
env:
RC_TAG: "v${{ github.event.inputs.RELEASE }}-RC${{ github.event.inputs.RC }}"
GIT_REPO_BASE_URL: https://github.com/apache/beam
RELEASE_DIR: "beam/${{ github.event.inputs.RELEASE }}"
RELEASE: "${{ github.event.inputs.RELEASE }}"
SCRIPT_DIR: release/src/main/scripts
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SVN_ARTIFACTS_DIR: "beam/${{ github.event.inputs.RELEASE }}/python"
run: |
git fetch --all --tags --prune
RELEASE_COMMIT=$(git rev-list -n 1 $RC_TAG)
PYTHON_ARTIFACTS_DIR="./python"
python "release/src/main/scripts/download_github_actions_artifacts.py" \
--github-token-var GITHUB_TOKEN \
--repo-url "apache/beam" \
--rc-tag "${RC_TAG}" \
--release-commit "${RELEASE_COMMIT}" \
--artifacts_dir "${PYTHON_ARTIFACTS_DIR}" \
--rc_number "${{ github.event.inputs.RC }}" \
--yes True
cd "${PYTHON_ARTIFACTS_DIR}"
ls
echo "------Checking Hash Value for apache_beam-${RELEASE}rc${{ github.event.inputs.RC }}.tar.gz-----"
sha512sum -c "apache_beam-${RELEASE}rc${{ github.event.inputs.RC }}.tar.gz.sha512"
for artifact in *.whl; do
echo "----------Checking Hash Value for ${artifact} wheel-----------"
sha512sum -c "${artifact}.sha512"
done
echo "===================Removing sha512 files======================="
rm $(ls | grep -i ".*.sha512$")
echo "====================Upload rc to pypi========================"
mkdir dist && mv $(ls | grep apache) dist && cd dist
echo "Will upload the following files to PyPI:"
ls
twine upload * -u __token__ -p "${{ github.event.inputs.PYPI_API_TOKEN }}"