66 branches :
77 - master
88 tags-ignore :
9- - ' ** '
9+ - " ** "
1010 # A release via GitHub releases will publish a stable version
1111 release :
1212 types : [published]
1313 # Workflow dispatch will publish whatever you choose
1414 workflow_dispatch :
1515 inputs :
1616 release_type :
17- description : ' Release type'
17+ description : Release type
1818 required : true
1919 type : choice
20- default : ' alpha'
20+ default : alpha
2121 options :
22- - ' alpha'
23- - ' beta'
24- - ' final'
22+ - alpha
23+ - beta
24+ - final
2525
2626jobs :
2727 lint_and_type_checks :
4343
4444 publish_to_pypi :
4545 name : Publish to PyPI
46- needs : [lint_and_type_checks, unit_tests, check_docs] # TODO: Add ' integration_tests' back!
46+ needs : [lint_and_type_checks, unit_tests, check_docs] # TODO: Add integration_tests back!
4747 runs-on : ubuntu-latest
4848 permissions :
4949 contents : write
@@ -53,84 +53,84 @@ jobs:
5353 url : https://pypi.org/p/apify
5454
5555 steps :
56- - name : Checkout repository
57- uses : actions/checkout@v3
58-
59- - name : Set up Python
60- uses : actions/setup-python@v4
61- with :
62- python-version : 3.8
63-
64- - name : Install dependencies
65- run : make install-dev
66-
67- - # Determine if this is a prerelease or latest release
68- name : Determine release type
69- id : get-release-type
70- run : |
71- if [ ${{ github.event_name }} = release ]; then
72- release_type="final"
73- elif [ ${{ github.event_name }} = push ]; then
74- release_type="beta"
75- elif [ ${{ github.event_name }} = workflow_dispatch ]; then
76- release_type=${{ github.event.inputs.release_type }}
77- fi
78-
79- if [ ${release_type} = final ]; then
80- docker_image_tag="latest"
81- elif [ ${release_type} = beta ]; then
82- docker_image_tag="beta"
83- else
84- docker_image_tag=""
85- fi
86-
87- echo "release_type=${release_type}" >> $GITHUB_OUTPUT
88- echo "docker_image_tag=${docker_image_tag}" >> $GITHUB_OUTPUT
89-
90- - # Check whether the released version is listed in CHANGELOG.md
91- name : Check whether the released version is listed in the changelog
92- if : steps.get-release-type.outputs.release_type != 'alpha'
93- run : make check-changelog-entry
94-
95- - # Check version consistency and increment pre-release version number for prereleases (must be the last step before build)
96- name : Bump pre-release version
97- if : steps.get-release-type.outputs.release_type != 'final'
98- run : python ./scripts/update_version_for_prerelease.py ${{ steps.get-release-type.outputs.release_type }}
99-
100- - # Build a source distribution and a python3-only wheel
101- name : Build distribution files
102- run : make build
103-
104- - # Check whether the package description will render correctly on PyPI
105- name : Check package rendering on PyPI
106- run : make twine-check
107-
108- - # Publish package to PyPI using their official GitHub action
109- name : Publish package to PyPI
110- uses : pypa/gh-action-pypi-publish@release/v1
111-
112- - # Tag the current commit with the version tag if this is not made from the release event (releases are tagged with the release process)
113- name : Tag Version
114- if : github.event_name != 'release'
115- run : |
116- git_tag=v`python ./scripts/print_current_package_version.py`
117- git tag $git_tag
118- git push origin $git_tag
119-
120- - # Upload the build artifacts to the release
121- name : Upload the build artifacts to release
122- if : github.event_name == 'release'
123- run : gh release upload ${{ github.ref_name }} dist/*
124- env :
125- GH_TOKEN : ${{ github.token }}
126-
127- - # Trigger building the Python Docker images in apify/apify-actor-docker repo
128- name : Trigger Docker image build
129- run : |
130- PACKAGE_VERSION=`python ./scripts/print_current_package_version.py`
131- gh api -X POST "/repos/apify/apify-actor-docker/dispatches" \
132- -F event_type=build-python-images \
133- -F client_payload[release_tag]=${{ steps.get-release-type.outputs.docker_image_tag }} \
134- -F client_payload[apify_version]=$PACKAGE_VERSION
135- env :
136- GH_TOKEN : ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
56+ - name : Checkout repository
57+ uses : actions/checkout@v3
58+
59+ - name : Set up Python
60+ uses : actions/setup-python@v4
61+ with :
62+ python-version : 3.8
63+
64+ - name : Install dependencies
65+ run : make install-dev
66+
67+ - # Determine if this is a prerelease or latest release
68+ name : Determine release type
69+ id : get-release-type
70+ run : |
71+ if [ ${{ github.event_name }} = release ]; then
72+ release_type="final"
73+ elif [ ${{ github.event_name }} = push ]; then
74+ release_type="beta"
75+ elif [ ${{ github.event_name }} = workflow_dispatch ]; then
76+ release_type=${{ github.event.inputs.release_type }}
77+ fi
78+
79+ if [ ${release_type} = final ]; then
80+ docker_image_tag="latest"
81+ elif [ ${release_type} = beta ]; then
82+ docker_image_tag="beta"
83+ else
84+ docker_image_tag=""
85+ fi
86+
87+ echo "release_type=${release_type}" >> $GITHUB_OUTPUT
88+ echo "docker_image_tag=${docker_image_tag}" >> $GITHUB_OUTPUT
89+
90+ - # Check whether the released version is listed in CHANGELOG.md
91+ name : Check whether the released version is listed in the changelog
92+ if : steps.get-release-type.outputs.release_type != 'alpha'
93+ run : make check-changelog-entry
94+
95+ - # Check version consistency and increment pre-release version number for prereleases (must be the last step before build)
96+ name : Bump pre-release version
97+ if : steps.get-release-type.outputs.release_type != 'final'
98+ run : python ./scripts/update_version_for_prerelease.py ${{ steps.get-release-type.outputs.release_type }}
99+
100+ - # Build a source distribution and a python3-only wheel
101+ name : Build distribution files
102+ run : make build
103+
104+ - # Check whether the package description will render correctly on PyPI
105+ name : Check package rendering on PyPI
106+ run : make twine-check
107+
108+ - # Publish package to PyPI using their official GitHub action
109+ name : Publish package to PyPI
110+ uses : pypa/gh-action-pypi-publish@release/v1
111+
112+ - # Tag the current commit with the version tag if this is not made from the release event (releases are tagged with the release process)
113+ name : Tag Version
114+ if : github.event_name != 'release'
115+ run : |
116+ git_tag=v`python ./scripts/print_current_package_version.py`
117+ git tag $git_tag
118+ git push origin $git_tag
119+
120+ - # Upload the build artifacts to the release
121+ name : Upload the build artifacts to release
122+ if : github.event_name == 'release'
123+ run : gh release upload ${{ github.ref_name }} dist/*
124+ env :
125+ GH_TOKEN : ${{ github.token }}
126+
127+ - # Trigger building the Python Docker images in apify/apify-actor-docker repo
128+ name : Trigger Docker image build
129+ run : |
130+ PACKAGE_VERSION=`python ./scripts/print_current_package_version.py`
131+ gh api -X POST "/repos/apify/apify-actor-docker/dispatches" \
132+ -F event_type=build-python-images \
133+ -F client_payload[release_tag]=${{ steps.get-release-type.outputs.docker_image_tag }} \
134+ -F client_payload[apify_version]=$PACKAGE_VERSION
135+ env :
136+ GH_TOKEN : ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
0 commit comments