Skip to content

Commit

Permalink
Merge pull request #1551 from wazuh/enhancement/1864-improve-push-doc…
Browse files Browse the repository at this point in the history
…ker-images-workflow

Improve the push docker images workflow
  • Loading branch information
teddytpc1 authored Oct 1, 2024
2 parents 9d882fc + 8bafe12 commit cc20665
Showing 1 changed file with 77 additions and 24 deletions.
101 changes: 77 additions & 24 deletions .github/workflows/Procedure_push_docker_images.yml
Original file line number Diff line number Diff line change
@@ -1,33 +1,84 @@
run-name: Launch Push Docker Images - Executed by @${{ github.actor }}
run-name: Launch Push Docker Images - ${{ inputs.id }}
name: Push Docker Images

on:
workflow_dispatch:
inputs:
IMAGE_TAG:
image_tag:
description: 'Docker image tag'
default: '4.10.0'
required: true
DOCKER_REFERENCE:
docker_reference:
description: 'wazuh-docker reference'
default: 'v4.10.0'
required: false
products:
description: 'Comma-separated list of the image names to build and push'
default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer'
required: true
filebeat_module_version:
description: 'Filebeat module version'
default: '0.4'
required: true
revision:
description: 'Package revision'
default: '1'
required: true
push_images:
description: 'Push images'
type: boolean
default: true
required: true
PRODUCTS:
id:
description: "ID used to identify the workflow uniquely."
type: string
required: false
dev:
description: "Add tag suffix '-dev' to the image tag ?"
type: boolean
default: true
required: false
workflow_call:
inputs:
image_tag:
description: 'Docker image tag'
default: '4.10.0'
required: true
type: string
docker_reference:
description: 'wazuh-docker reference'
default: 'v4.10.0'
required: false
type: string
products:
description: 'Comma-separated list of the image names to build and push'
default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer'
required: true
FILEBEAT_MODULE_VERSION:
type: string
filebeat_module_version:
description: 'Filebeat module version'
default: '0.4'
required: true
REVISION:
type: string
revision:
description: 'Package revision'
default: '1'
required: true
PUSH_IMAGES:
type: string
push_images:
description: 'Push images'
type: boolean
default: true
required: true
id:
description: "ID used to identify the workflow uniquely."
type: string
required: false
dev:
description: "Add tag suffix '-dev' to the image tag ?"
type: boolean
default: false
required: false

jobs:
build-and-push:
Expand All @@ -44,23 +95,25 @@ jobs:
echo "---------------------------------------------"
echo "Inputs provided:"
echo "---------------------------------------------"
echo "* IMAGE_TAG: ${{ inputs.IMAGE_TAG }}"
echo "* DOCKER_REFERENCE: ${{ inputs.DOCKER_REFERENCE }}"
echo "* PRODUCTS: ${{ inputs.PRODUCTS }}"
echo "* FILEBEAT_MODULE_VERSION: ${{ inputs.FILEBEAT_MODULE_VERSION }}"
echo "* REVISION: ${{ inputs.REVISION }}"
echo "* PUSH_IMAGES: ${{ inputs.PUSH_IMAGES }}"
echo "* id: ${{ inputs.id }}"
echo "* image_tag: ${{ inputs.image_tag }}"
echo "* docker_reference: ${{ inputs.docker_reference }}"
echo "* products: ${{ inputs.products }}"
echo "* filebeat_module_version: ${{ inputs.filebeat_module_version }}"
echo "* revision: ${{ inputs.revision }}"
echo "* push_images: ${{ inputs.push_images }}"
echo "* dev: ${{ inputs.dev }}"
echo "---------------------------------------------"
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ inputs.DOCKER_REFERENCE }}
ref: ${{ inputs.docker_reference }}

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: wazuh
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Install Docker Compose
Expand All @@ -71,10 +124,9 @@ jobs:
- name: Build Wazuh images
run: |
IMAGE_TAG=${{ inputs.IMAGE_TAG }}
FILEBEAT_MODULE_VERSION=${{ inputs.FILEBEAT_MODULE_VERSION }}
REVISION=${{ inputs.REVISION }}
PUSH_IMAGES=${{ inputs.PUSH_IMAGES }}
IMAGE_TAG=${{ inputs.image_tag }}
FILEBEAT_MODULE_VERSION=${{ inputs.filebeat_module_version }}
REVISION=${{ inputs.revision }}
if [[ "$IMAGE_TAG" == *"-"* ]]; then
IFS='-' read -r -a tokens <<< "$IMAGE_TAG"
Expand All @@ -89,8 +141,9 @@ jobs:
./build-docker-images/build-images.sh -v $IMAGE_TAG -r $REVISION -f $FILEBEAT_MODULE_VERSION
fi
# Save .env file (generated by build-images.sh) contents to $GITHUB_ENV
ENV_FILE_PATH=".env"
# Save .env file contents to $GITHUB_ENV
if [ -f $ENV_FILE_PATH ]; then
while IFS= read -r line || [ -n "$line" ]; do
echo "$line" >> $GITHUB_ENV
Expand All @@ -100,15 +153,15 @@ jobs:
exit 1
fi
- name: Tag and Push Wazuh images
if: ${{ inputs.PUSH_IMAGES }}
if: ${{ inputs.push_images }}
run: |
IMAGE_TAG=${{ inputs.IMAGE_TAG }}
IMAGE_NAMES=${{ inputs.PRODUCTS }}
IMAGE_TAG="${{ inputs.image_tag }}$( [ "${{ inputs.dev }}" == "true" ] && echo '-dev' || true )"
IMAGE_NAMES=${{ inputs.products }}
IFS=',' read -r -a images <<< "$IMAGE_NAMES"
for image in "${images[@]}"; do
echo "Tagging and pushing wazuh/$image:${WAZUH_VERSION} to wazuh/$image:$IMAGE_TAG"
docker tag wazuh/$image:${WAZUH_VERSION} wazuh/$image:$IMAGE_TAG
echo "Pushing wazuh/$image:$IMAGE_TAG ..."
docker push wazuh/$image:$IMAGE_TAG
done

0 comments on commit cc20665

Please sign in to comment.