mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-24 13:01:56 +00:00
99 lines
2.8 KiB
YAML
99 lines
2.8 KiB
YAML
name: pypi-release
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
|
|
env:
|
|
RELEASE_TAG: ${{ github.event.release.tag_name }}
|
|
PYTHON_VERSION: 3.11
|
|
CACHE: "poetry"
|
|
# TODO: create a bot user for this kind of tasks, like prowler-bot
|
|
GIT_COMMITTER_EMAIL: "sergio@prowler.com"
|
|
|
|
jobs:
|
|
release-prowler-job:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
POETRY_VIRTUALENVS_CREATE: "false"
|
|
name: Release Prowler to PyPI
|
|
steps:
|
|
- name: Get Prowler version
|
|
run: |
|
|
PROWLER_VERSION="${{ env.RELEASE_TAG }}"
|
|
|
|
case ${PROWLER_VERSION%%.*} in
|
|
3)
|
|
echo "Releasing Prowler v3 with tag ${PROWLER_VERSION}"
|
|
;;
|
|
4)
|
|
echo "Releasing Prowler v4 with tag ${PROWLER_VERSION}"
|
|
;;
|
|
*)
|
|
echo "Releasing another Prowler major version, aborting..."
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pipx install poetry
|
|
pipx inject poetry poetry-bumpversion
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
cache: ${{ env.CACHE }}
|
|
|
|
- name: Update Poetry and config version
|
|
run: |
|
|
poetry version ${{ env.RELEASE_TAG }}
|
|
|
|
- name: Import GPG key
|
|
uses: crazy-max/ghaction-import-gpg@v6
|
|
with:
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
|
git_user_signingkey: true
|
|
git_commit_gpgsign: true
|
|
|
|
- name: Push updated version to the release tag
|
|
run: |
|
|
# Configure Git
|
|
git config user.name "github-actions"
|
|
git config user.email "${{ env.GIT_COMMITTER_EMAIL }}"
|
|
|
|
# Add the files with the version changed
|
|
git add prowler/config/config.py pyproject.toml
|
|
git commit -m "chore(release): ${{ env.RELEASE_TAG }}" --no-verify -S
|
|
|
|
# Replace the tag with the version updated
|
|
git tag -fa ${{ env.RELEASE_TAG }} -m "chore(release): ${{ env.RELEASE_TAG }}" --sign
|
|
|
|
# Push the tag
|
|
git push -f origin ${{ env.RELEASE_TAG }}
|
|
|
|
- name: Build Prowler package
|
|
run: |
|
|
poetry build
|
|
|
|
- name: Publish Prowler package to PyPI
|
|
run: |
|
|
poetry config pypi-token.pypi ${{ secrets.PYPI_API_TOKEN }}
|
|
poetry publish
|
|
|
|
- name: Replicate PyPI package
|
|
run: |
|
|
rm -rf ./dist && rm -rf ./build && rm -rf prowler.egg-info
|
|
pip install toml
|
|
python util/replicate_pypi_package.py
|
|
poetry build
|
|
|
|
- name: Publish prowler-cloud package to PyPI
|
|
run: |
|
|
poetry config pypi-token.pypi ${{ secrets.PYPI_API_TOKEN }}
|
|
poetry publish
|