diff --git a/.github/workflows/prowler-release-preparation.yml b/.github/workflows/prowler-release-preparation.yml index 192ed54909..cb12015669 100644 --- a/.github/workflows/prowler-release-preparation.yml +++ b/.github/workflows/prowler-release-preparation.yml @@ -19,12 +19,23 @@ jobs: runs-on: ubuntu-latest permissions: contents: write + pull-requests: write steps: - name: Checkout code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 0 + - name: Set up Python + uses: actions/setup-python@3105fb18c05ddd93efea5f9e0bef7a03a6316b80 # v5.2.0 + with: + python-version: '3.12' + + - name: Install Poetry + run: | + python3 -m pip install --user poetry + echo "$HOME/.local/bin" >> $GITHUB_PATH + - name: Parse version and determine branch run: | # Validate version format (reusing pattern from sdk-bump-version.yml) @@ -107,11 +118,12 @@ jobs: echo "✓ api/pyproject.toml version: $CURRENT_API_VERSION" - name: Verify prowler dependency in api/pyproject.toml + if: ${{ env.PATCH_VERSION != '0' }} run: | CURRENT_PROWLER_REF=$(grep 'prowler @ git+https://github.com/prowler-cloud/prowler.git@' api/pyproject.toml | sed -E 's/.*@([^"]+)".*/\1/' | tr -d '[:space:]') - PROWLER_VERSION_TRIMMED=$(echo "$PROWLER_VERSION" | tr -d '[:space:]') - if [ "$CURRENT_PROWLER_REF" != "$PROWLER_VERSION_TRIMMED" ]; then - echo "ERROR: Prowler dependency mismatch in api/pyproject.toml (expected: '$PROWLER_VERSION_TRIMMED', found: '$CURRENT_PROWLER_REF')" + BRANCH_NAME_TRIMMED=$(echo "$BRANCH_NAME" | tr -d '[:space:]') + if [ "$CURRENT_PROWLER_REF" != "$BRANCH_NAME_TRIMMED" ]; then + echo "ERROR: Prowler dependency mismatch in api/pyproject.toml (expected: '$BRANCH_NAME_TRIMMED', found: '$CURRENT_PROWLER_REF')" exit 1 fi echo "✓ api/pyproject.toml prowler dependency: $CURRENT_PROWLER_REF" @@ -136,6 +148,36 @@ jobs: fi git checkout -b "$BRANCH_NAME" + - name: Update prowler dependency in api/pyproject.toml + if: ${{ env.PATCH_VERSION == '0' }} + run: | + CURRENT_PROWLER_REF=$(grep 'prowler @ git+https://github.com/prowler-cloud/prowler.git@' api/pyproject.toml | sed -E 's/.*@([^"]+)".*/\1/' | tr -d '[:space:]') + BRANCH_NAME_TRIMMED=$(echo "$BRANCH_NAME" | tr -d '[:space:]') + + # Minor release: update the dependency to use the new branch + echo "Minor release detected - updating prowler dependency from '$CURRENT_PROWLER_REF' to '$BRANCH_NAME_TRIMMED'" + sed -i "s|prowler @ git+https://github.com/prowler-cloud/prowler.git@[^\"]*\"|prowler @ git+https://github.com/prowler-cloud/prowler.git@$BRANCH_NAME_TRIMMED\"|" api/pyproject.toml + + # Verify the change was made + UPDATED_PROWLER_REF=$(grep 'prowler @ git+https://github.com/prowler-cloud/prowler.git@' api/pyproject.toml | sed -E 's/.*@([^"]+)".*/\1/' | tr -d '[:space:]') + if [ "$UPDATED_PROWLER_REF" != "$BRANCH_NAME_TRIMMED" ]; then + echo "ERROR: Failed to update prowler dependency in api/pyproject.toml" + exit 1 + fi + + # Update poetry lock file + echo "Updating poetry.lock file..." + cd api + poetry lock --no-update + cd .. + + # Commit and push the changes + git add api/pyproject.toml api/poetry.lock + git commit -m "chore(api): update prowler dependency to $BRANCH_NAME_TRIMMED for release $PROWLER_VERSION" + git push origin "$BRANCH_NAME" + + echo "✓ api/pyproject.toml prowler dependency updated to: $UPDATED_PROWLER_REF" + - name: Extract changelog entries run: | set -e