diff --git a/.github/workflows/Procedure_push_docker_images.yml b/.github/workflows/Procedure_push_docker_images.yml index c1eead7b..e5b1409e 100644 --- a/.github/workflows/Procedure_push_docker_images.yml +++ b/.github/workflows/Procedure_push_docker_images.yml @@ -86,6 +86,7 @@ jobs: outputs: WAZUH_COMPONENTS: ${{ steps.compute-outputs.outputs.WAZUH_COMPONENTS }} + ALL_PRODUCTS_SELECTED: ${{ steps.compute-outputs.outputs.ALL_PRODUCTS_SELECTED }} steps: - name: Print inputs @@ -110,22 +111,24 @@ jobs: - name: Set up variables id: compute-outputs run: | - if [[ "${{ inputs.products }}" != "null" && "${{ inputs.products }}" != "" ]]; then - # Convert comma-separated list to JSON array format - IFS=',' read -ra COMPONENTS <<< "${{ inputs.products }}" - JSON_ARRAY="[" - for i in "${!COMPONENTS[@]}"; do - if [ $i -gt 0 ]; then - JSON_ARRAY+="," - fi - JSON_ARRAY+="\"${COMPONENTS[$i]}\"" - done - JSON_ARRAY+="]" - echo "WAZUH_COMPONENTS=$JSON_ARRAY" >> $GITHUB_OUTPUT - else - echo "WAZUH_COMPONENTS=[\"wazuh-manager\",\"wazuh-dashboard\",\"wazuh-indexer\",\"wazuh-agent\"]" >> $GITHUB_OUTPUT + # Use the default list if products is empty + PRODUCTS="${{ inputs.products }}" + if [[ -z "$PRODUCTS" || "$PRODUCTS" == "null" ]]; then + PRODUCTS="wazuh-manager,wazuh-dashboard,wazuh-indexer,wazuh-agent" fi + # Check if all 4 core components are present in the string + if [[ "$PRODUCTS" == *"wazuh-manager"* && "$PRODUCTS" == *"wazuh-dashboard"* && "$PRODUCTS" == *"wazuh-indexer"* && "$PRODUCTS" == *"wazuh-agent"* ]]; then + echo "ALL_PRODUCTS_SELECTED=true" >> $GITHUB_OUTPUT + else + echo "ALL_PRODUCTS_SELECTED=false" >> $GITHUB_OUTPUT + fi + + # Convert to JSON for the matrix (Your existing logic) + IFS=',' read -ra COMPONENTS <<< "$PRODUCTS" + JSON_ARRAY=$(printf '%s\n' "${COMPONENTS[@]}" | jq -R . | jq -s -c .) + echo "WAZUH_COMPONENTS=$JSON_ARRAY" >> $GITHUB_OUTPUT + build-and-push: runs-on: ubuntu-22.04 @@ -211,11 +214,19 @@ jobs: fi working-directory: ./build-docker-images + + notify: + runs-on: ubuntu-22.04 + needs: [setup, build-and-push] + # Only run if NOT dev AND all products were selected + if: ${{ inputs.dev == false && needs.setup.outputs.ALL_PRODUCTS_SELECTED == 'true' }} + + steps: - name: Image exists validation - if: ${{ inputs.dev == false }} id: validation run: | IMAGE_TAG=${{ inputs.image_tag }} + IMAGE_REGISTRY="${{ vars.IMAGE_REGISTRY_PROD }}" PURPOSE="" if [[ "$IMAGE_TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then @@ -237,12 +248,15 @@ jobs: echo "purpose=$PURPOSE" >> $GITHUB_OUTPUT - name: GH issue notification - if: ${{ inputs.dev == false && steps.validation.outputs.purpose != '' }} + if: ${{ steps.validation.outputs.purpose != '' }} + env: + GH_TOKEN: ${{ secrets.NOTIFICATION_GH_ARTIFACT_TOKEN }} run: | IMAGE_TAG=${{ inputs.image_tag }} + PURPOSE="${{ steps.validation.outputs.purpose }}" + GH_TITLE="" GH_MESSAGE="" - PURPOSE="${{ steps.validation.outputs.purpose }}" ## Setting GH issue title GH_TITLE="Artifactory vulnerabilities update \`v$IMAGE_TAG\`" @@ -293,6 +307,3 @@ jobs: gh project item-edit --id $PROJECT_ITEM_ID --project-id ${{ secrets.NOTIFICATION_PROJECT_ID }} --field-id ${{ secrets.NOTIFICATION_PROJECT_SIZE_ID }} --single-select-option-id ${{ secrets.NOTIFICATION_PROJECT_SIZE_OPTION_ID }} ## Setting Subteam gh project item-edit --id $PROJECT_ITEM_ID --project-id ${{ secrets.NOTIFICATION_PROJECT_ID }} --field-id ${{ secrets.NOTIFICATION_PROJECT_SUBTEAM_ID }} --single-select-option-id ${{ secrets.NOTIFICATION_PROJECT_SUBTEAM_OPTION_ID }} - - env: - GH_TOKEN: ${{ secrets.NOTIFICATION_GH_ARTIFACT_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 3014bb92..0328f9ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ All notable changes to this project will be documented in this file. ### Fixed -- None +- GH issue notification fix ([#2312](https://github.com/wazuh/wazuh-docker/pull/2312)) ### Deleted