1- name : Create a release
1+ name : Stable release
22
33on :
4- # Trigger a stable version release via GitHub's UI, with the ability to specify the type of release.
4+ # Runs when manually triggered from the GitHub UI, with options to specify the type of release.
55 workflow_dispatch :
66 inputs :
77 release_type :
@@ -26,63 +26,55 @@ concurrency:
2626 cancel-in-progress : false
2727
2828jobs :
29- release_metadata :
30- name : Prepare release metadata
29+ code_checks :
30+ name : Code checks
31+ uses : ./.github/workflows/_check_code.yaml
32+
33+ release_prepare :
34+ name : Release prepare
35+ needs : [code_checks]
3136 runs-on : ubuntu-latest
3237 outputs :
33- version_number : ${{ steps.release_metadata .outputs.version_number }}
34- tag_name : ${{ steps.release_metadata .outputs.tag_name }}
35- changelog : ${{ steps.release_metadata .outputs.changelog }}
36- release_notes : ${{ steps.release_metadata .outputs.release_notes }}
38+ version_number : ${{ steps.release_prepare .outputs.version_number }}
39+ tag_name : ${{ steps.release_prepare .outputs.tag_name }}
40+ changelog : ${{ steps.release_prepare .outputs.changelog }}
41+ release_notes : ${{ steps.release_prepare .outputs.release_notes }}
3742 steps :
3843 - uses : apify/workflows/git-cliff-release@main
39- name : Prepare release metadata
40- id : release_metadata
44+ name : Release prepare
45+ id : release_prepare
4146 with :
4247 release_type : ${{ inputs.release_type }}
4348 custom_version : ${{ inputs.custom_version }}
4449 existing_changelog_path : CHANGELOG.md
4550
46- lint_check :
47- name : Lint check
48- uses : apify/workflows/.github/workflows/python_lint_check.yaml@main
49- with :
50- python-versions : ' ["3.10", "3.11", "3.12", "3.13", "3.14"]'
51-
52- type_check :
53- name : Type check
54- uses : apify/workflows/.github/workflows/python_type_check.yaml@main
55- with :
56- python-versions : ' ["3.10", "3.11", "3.12", "3.13", "3.14"]'
57-
58- update_changelog :
59- name : Update changelog
60- needs : [release_metadata, lint_check, type_check]
51+ changelog_update :
52+ name : Changelog update
53+ needs : [release_prepare]
6154 uses : apify/workflows/.github/workflows/python_bump_and_update_changelog.yaml@main
6255 with :
63- version_number : ${{ needs.release_metadata.outputs.version_number }}
64- changelog : ${{ needs.release_metadata.outputs.changelog }}
65- secrets :
66- APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN : ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
56+ version_number : ${{ needs.release_prepare.outputs.version_number }}
57+ changelog : ${{ needs.release_prepare.outputs.changelog }}
58+ secrets : inherit
6759
68- create_github_release :
69- name : Create github release
70- needs : [release_metadata, update_changelog ]
60+ github_release :
61+ name : GitHub release
62+ needs : [release_prepare, changelog_update ]
7163 runs-on : ubuntu-latest
7264 env :
7365 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
7466 steps :
75- - name : Create release
67+ - name : GitHub release
7668 uses : softprops/action-gh-release@v2
7769 with :
78- tag_name : ${{ needs.release_metadata .outputs.tag_name }}
79- name : ${{ needs.release_metadata .outputs.version_number }}
80- target_commitish : ${{ needs.update_changelog .outputs.changelog_commitish }}
81- body : ${{ needs.release_metadata .outputs.release_notes }}
70+ tag_name : ${{ needs.release_prepare .outputs.tag_name }}
71+ name : ${{ needs.release_prepare .outputs.version_number }}
72+ target_commitish : ${{ needs.changelog_update .outputs.changelog_commitish }}
73+ body : ${{ needs.release_prepare .outputs.release_notes }}
8274
83- publish_to_pypi :
84- name : Publish to PyPI
85- needs : [release_metadata, update_changelog ]
75+ pypi_publish :
76+ name : PyPI publish
77+ needs : [release_prepare, changelog_update ]
8678 runs-on : ubuntu-latest
8779 permissions :
8880 contents : write
@@ -96,15 +88,16 @@ jobs:
9688 with :
9789 package_name : apify
9890 is_prerelease : " "
99- version_number : ${{ needs.release_metadata.outputs.version_number }}
100- ref : ${{ needs.update_changelog.outputs.changelog_commitish }}
91+ version_number : ${{ needs.release_prepare.outputs.version_number }}
92+ ref : ${{ needs.changelog_update.outputs.changelog_commitish }}
93+
10194 # Publishes the package to PyPI using PyPA official GitHub action with OIDC authentication.
10295 - name : Publish package to PyPI
10396 uses : pypa/gh-action-pypi-publish@release/v1
10497
10598 trigger_docker_build :
10699 name : Trigger Docker image build
107- needs : [release_metadata, update_changelog ]
100+ needs : [release_prepare, changelog_update ]
108101 runs-on : ubuntu-latest
109102 steps :
110103 # Trigger building the Python Docker images in apify/apify-actor-docker repo
@@ -113,6 +106,6 @@ jobs:
113106 gh api -X POST "/repos/apify/apify-actor-docker/dispatches" \
114107 -F event_type=build-python-images \
115108 -F 'client_payload[release_tag]=latest' \
116- -F 'client_payload[apify_version]=${{ needs.release_metadata .outputs.version_number }}'
109+ -F 'client_payload[apify_version]=${{ needs.release_prepare .outputs.version_number }}'
117110 env :
118111 GH_TOKEN : ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
0 commit comments