Skip to content

Commit bcca72f

Browse files
committed
Use new release and pre_release workflows
1 parent f5e099e commit bcca72f

9 files changed

+182
-319
lines changed

.github/workflows/_changelog_entry_check.yaml

Lines changed: 0 additions & 30 deletions
This file was deleted.

.github/workflows/_version_conflict_check.yaml

Lines changed: 0 additions & 30 deletions
This file was deleted.

.github/workflows/pre_release.yaml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Create a pre-release
2+
3+
on:
4+
# Trigger a beta version release (pre-release) on push to the master branch.
5+
push:
6+
branches:
7+
- master
8+
tags-ignore:
9+
- "**" # Ignore all tags to prevent duplicate builds when tags are pushed.
10+
11+
jobs:
12+
release_metadata:
13+
if: "!startsWith(github.event.head_commit.message, 'docs') && !startsWith(github.event.head_commit.message, 'ci')"
14+
name: Prepare release metadata
15+
runs-on: ubuntu-latest
16+
outputs:
17+
version_number: ${{ steps.release_metadata.outputs.version_number }}
18+
tag_name: ${{ steps.release_metadata.outputs.tag_name }}
19+
changelog: ${{ steps.release_metadata.outputs.changelog }}
20+
steps:
21+
- uses: apify/workflows/git-cliff-release@main
22+
id: release_metadata
23+
name: Prepare release metadata
24+
with:
25+
release_type: prerelease
26+
27+
lint_check:
28+
name: Lint check
29+
uses: apify/workflows/.github/workflows/python_lint_check.yaml@main
30+
31+
type_check:
32+
name: Type check
33+
uses: apify/workflows/.github/workflows/python_type_check.yaml@main
34+
35+
unit_tests:
36+
name: Unit tests
37+
uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main
38+
39+
integration_tests:
40+
name: Integration tests
41+
uses: apify/workflows/.github/workflows/python_integration_tests.yaml@main
42+
secrets: inherit
43+
44+
update_changelog:
45+
name: Update changelog
46+
needs: [release_metadata, lint_check, type_check, unit_tests, integration_tests]
47+
uses: apify/workflows/.github/workflows/python_bump_and_update_changelog.yaml@main
48+
with:
49+
version_number: ${{ needs.release_metadata.outputs.version_number }}
50+
changelog: ${{ needs.release_metadata.outputs.changelog }}
51+
secrets:
52+
APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
53+
54+
publish_to_pypi:
55+
name: Publish to PyPI
56+
needs: [release_metadata, update_changelog]
57+
runs-on: ubuntu-latest
58+
permissions:
59+
contents: write
60+
id-token: write # Required for OIDC authentication.
61+
environment:
62+
name: pypi
63+
url: https://pypi.org/project/apify-client
64+
steps:
65+
- name: Prepare distribution
66+
uses: apify/workflows/prepare-pypi-distribution@main
67+
with:
68+
package_name: apify-client
69+
is_prerelease: "yes"
70+
version_number: ${{ needs.release_metadata.outputs.version_number }}
71+
ref: ${{ needs.update_changelog.changelog_commitish }}
72+
# Publishes the package to PyPI using PyPA official GitHub action with OIDC authentication.
73+
- name: Publish package to PyPI
74+
uses: pypa/gh-action-pypi-publish@release/v1

.github/workflows/release.yaml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
name: Create a release
2+
3+
on:
4+
# Trigger a stable version release via GitHub's UI, with the ability to specify the type of release.
5+
workflow_dispatch:
6+
inputs:
7+
release_type:
8+
description: Release type
9+
required: true
10+
type: choice
11+
default: auto
12+
options:
13+
- auto
14+
- custom
15+
- patch
16+
- minor
17+
- major
18+
custom_version:
19+
description: The custom version to bump to (only for "custom" type)
20+
required: false
21+
type: string
22+
default: ""
23+
24+
jobs:
25+
release_metadata:
26+
name: Prepare release metadata
27+
runs-on: ubuntu-latest
28+
outputs:etadata, lint_check, type_check, unit_tests]
29+
uses: apify/workflows/.github/workflows/python_bump_and_update_changelog.yaml@main
30+
with:
31+
version_number: ${{ needs.release_metadata.outputs.version_number }}
32+
changelog: ${{ needs.release_metadata.outputs.changelog }}
33+
secrets:
34+
version_number: ${{ steps.release_metadata.outputs.version_number }}
35+
tag_name: ${{ steps.release_metadata.outputs.tag_name }}
36+
changelog: ${{ steps.release_metadata.outputs.changelog }}
37+
release_notes: ${{ steps.release_metadata.outputs.release_notes }}
38+
steps:
39+
- uses: apify/workflows/git-cliff-release@main
40+
name: Prepare release metadata
41+
id: release_metadata
42+
with:
43+
release_type: ${{ inputs.release_type }}
44+
custom_version: ${{ inputs.custom_version }}
45+
46+
lint_check:
47+
name: Lint check
48+
uses: apify/workflows/.github/workflows/python_lint_check.yaml@main
49+
50+
type_check:
51+
name: Type check
52+
uses: apify/workflows/.github/workflows/python_type_check.yaml@main
53+
54+
unit_tests:
55+
name: Unit tests
56+
uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main
57+
58+
integration_tests:
59+
name: Integration tests
60+
uses: apify/workflows/.github/workflows/python_integration_tests.yaml@main
61+
secrets: inherit
62+
63+
update_changelog:
64+
name: Update changelog
65+
needs: [release_metadata, lint_check, type_check, unit_tests, integration_tests]
66+
uses: apify/workflows/.github/workflows/python_bump_and_update_changelog.yaml@main
67+
with:
68+
version_number: ${{ needs.release_metadata.outputs.version_number }}
69+
changelog: ${{ needs.release_metadata.outputs.changelog }}
70+
secrets:
71+
APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }}
72+
73+
create_github_release:
74+
name: Create github release
75+
needs: [release_metadata, update_changelog]
76+
runs-on: ubuntu-latest
77+
env:
78+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
79+
steps:
80+
- name: Create release
81+
uses: softprops/action-gh-release@v2
82+
with:
83+
tag_name: ${{ needs.release_metadata.outputs.tag_name }}
84+
name: ${{ needs.release_metadata.outputs.version_number }}
85+
target_commitish: ${{ needs.update_changelog.outputs.changelog_commitish }}
86+
body: ${{ needs.release_metadata.outputs.release_notes }}
87+
88+
publish_to_pypi:
89+
name: Publish to PyPI
90+
needs: [release_metadata, update_changelog]
91+
runs-on: ubuntu-latest
92+
permissions:
93+
contents: write
94+
id-token: write # Required for OIDC authentication.
95+
environment:
96+
name: pypi
97+
url: https://pypi.org/project/apify-client
98+
steps:
99+
- name: Prepare distribution
100+
uses: apify/workflows/prepare-pypi-distribution@main
101+
with:
102+
package_name: apify-client
103+
is_prerelease: ""
104+
version_number: ${{ needs.release_metadata.outputs.version_number }}
105+
ref: ${{ needs.update_changelog.changelog_commitish }}
106+
# Publishes the package to PyPI using PyPA official GitHub action with OIDC authentication.
107+
- name: Publish package to PyPI
108+
uses: pypa/gh-action-pypi-publish@release/v1

0 commit comments

Comments
 (0)