mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-03-27 10:37:07 +00:00
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: César Arroba <19954079+cesararroba@users.noreply.github.com> Co-authored-by: Alan Buscaglia <gentlemanprogramming@gmail.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Co-authored-by: Rubén De la Torre Vico <ruben@prowler.com> Co-authored-by: HugoPBrito <hugopbrit@gmail.com> Co-authored-by: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Co-authored-by: Pepe Fagoaga <pepe@prowler.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Chandrapal Badshah <Chan9390@users.noreply.github.com> Co-authored-by: Chandrapal Badshah <12944530+Chan9390@users.noreply.github.com> Co-authored-by: Adrián Peña <adrianjpr@gmail.com> Co-authored-by: Pedro Martín <pedromarting3@gmail.com> Co-authored-by: KonstGolfi <73020281+KonstGolfi@users.noreply.github.com> Co-authored-by: lydiavilchez <114735608+lydiavilchez@users.noreply.github.com> Co-authored-by: Prowler Bot <bot@prowler.com> Co-authored-by: prowler-bot <179230569+prowler-bot@users.noreply.github.com> Co-authored-by: StylusFrost <43682773+StylusFrost@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: alejandrobailo <alejandrobailo94@gmail.com> Co-authored-by: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Co-authored-by: Víctor Fernández Poyatos <victor@prowler.com> Co-authored-by: bota4go <108249054+bota4go@users.noreply.github.com> Co-authored-by: Daniel Barranquero <74871504+danibarranqueroo@users.noreply.github.com> Co-authored-by: Daniel Barranquero <danielbo2001@gmail.com> Co-authored-by: mchennai <50082780+mchennai@users.noreply.github.com> Co-authored-by: Ryan Nolette <sonofagl1tch@users.noreply.github.com> Co-authored-by: Ulissis Correa <123517149+ulissisc@users.noreply.github.com> Co-authored-by: Sergio Garcia <hello@mistercloudsec.com> Co-authored-by: Lee Trout <ltrout@watchpointlabs.com> Co-authored-by: Sergio Garcia <sergargar1@gmail.com> Co-authored-by: Alan-TheGentleman <alan@thegentleman.dev>
94 lines
3.8 KiB
YAML
94 lines
3.8 KiB
YAML
name: 'Setup Python with Poetry'
|
|
description: 'Setup Python environment with Poetry and install dependencies'
|
|
author: 'Prowler'
|
|
|
|
inputs:
|
|
python-version:
|
|
description: 'Python version to use'
|
|
required: true
|
|
working-directory:
|
|
description: 'Working directory for Poetry'
|
|
required: false
|
|
default: '.'
|
|
poetry-version:
|
|
description: 'Poetry version to install'
|
|
required: false
|
|
default: '2.1.1'
|
|
install-dependencies:
|
|
description: 'Install Python dependencies with Poetry'
|
|
required: false
|
|
default: 'true'
|
|
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
- name: Replace @master with current branch in pyproject.toml (prowler repo only)
|
|
if: github.event_name == 'pull_request' && github.base_ref == 'master' && github.repository == 'prowler-cloud/prowler'
|
|
shell: bash
|
|
working-directory: ${{ inputs.working-directory }}
|
|
run: |
|
|
BRANCH_NAME="${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}}"
|
|
echo "Using branch: $BRANCH_NAME"
|
|
sed -i "s|\(git+https://github.com/prowler-cloud/prowler[^@]*\)@master|\1@$BRANCH_NAME|g" pyproject.toml
|
|
|
|
- name: Install poetry
|
|
shell: bash
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pipx install poetry==${{ inputs.poetry-version }}
|
|
|
|
- name: Update poetry.lock with latest Prowler commit
|
|
if: github.repository_owner == 'prowler-cloud' && github.repository != 'prowler-cloud/prowler'
|
|
shell: bash
|
|
working-directory: ${{ inputs.working-directory }}
|
|
run: |
|
|
LATEST_COMMIT=$(curl -s "https://api.github.com/repos/prowler-cloud/prowler/commits/master" | jq -r '.sha')
|
|
echo "Latest commit hash: $LATEST_COMMIT"
|
|
sed -i '/url = "https:\/\/github\.com\/prowler-cloud\/prowler\.git"/,/resolved_reference = / {
|
|
s/resolved_reference = "[a-f0-9]\{40\}"/resolved_reference = "'"$LATEST_COMMIT"'"/
|
|
}' poetry.lock
|
|
echo "Updated resolved_reference:"
|
|
grep -A2 -B2 "resolved_reference" poetry.lock
|
|
|
|
- name: Update SDK resolved_reference to latest commit (prowler repo on push)
|
|
if: github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'prowler-cloud/prowler'
|
|
shell: bash
|
|
working-directory: ${{ inputs.working-directory }}
|
|
run: |
|
|
LATEST_COMMIT=$(curl -s "https://api.github.com/repos/prowler-cloud/prowler/commits/master" | jq -r '.sha')
|
|
echo "Latest commit hash: $LATEST_COMMIT"
|
|
sed -i '/url = "https:\/\/github\.com\/prowler-cloud\/prowler\.git"/,/resolved_reference = / {
|
|
s/resolved_reference = "[a-f0-9]\{40\}"/resolved_reference = "'"$LATEST_COMMIT"'"/
|
|
}' poetry.lock
|
|
echo "Updated resolved_reference:"
|
|
grep -A2 -B2 "resolved_reference" poetry.lock
|
|
|
|
- name: Update poetry.lock (prowler repo only)
|
|
if: github.repository == 'prowler-cloud/prowler'
|
|
shell: bash
|
|
working-directory: ${{ inputs.working-directory }}
|
|
run: poetry lock
|
|
|
|
- name: Set up Python ${{ inputs.python-version }}
|
|
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
|
with:
|
|
python-version: ${{ inputs.python-version }}
|
|
cache: 'poetry'
|
|
cache-dependency-path: ${{ inputs.working-directory }}/poetry.lock
|
|
|
|
- name: Install Python dependencies
|
|
if: inputs.install-dependencies == 'true'
|
|
shell: bash
|
|
working-directory: ${{ inputs.working-directory }}
|
|
run: |
|
|
poetry install --no-root
|
|
poetry run pip list
|
|
|
|
- name: Update Prowler Cloud API Client
|
|
if: github.repository_owner == 'prowler-cloud' && github.repository != 'prowler-cloud/prowler'
|
|
shell: bash
|
|
working-directory: ${{ inputs.working-directory }}
|
|
run: |
|
|
poetry remove prowler-cloud-api-client
|
|
poetry add ./prowler-cloud-api-client
|