Skip to content

Build plugin |

Build plugin | #1

Workflow file for this run

run-name: Build ${{ inputs.plugin }} plugin | ${{ inputs.id }}
name: Build packages
# This workflow runs when any of the following occur:
# - Run manually
# - Invoked from another workflow
# - On push to branches named after ci/*
on:
workflow_dispatch:
inputs:
revision:
description: "Revision"
type: string
default: "0"
plugin:
description: "Name of the plugin to build"
type: string
default: "wazuh-indexer-setup"
id:
description: "ID used to identify the workflow uniquely."
type: string
required: false
workflow_call:
inputs:
revision:
description: "Revision"
type: string
default: "0"
plugin:
description: "Name of the plugin to build"
type: string
default: "wazuh-indexer-setup"
id:
description: "ID used to identify the workflow uniquely."
type: string
required: false
push:
# Sequence of patterns matched against refs/heads
branches:
- "ci/*"
# ==========================
# Bibliography
# ==========================
#
# * Reusable workflows: limitations
# | https://docs.github.com/en/actions/using-workflows/reusing-workflows#limitations
# * Using matrix in reusable workflows:
# | https://docs.github.com/en/actions/using-workflows/reusing-workflows#using-a-matrix-strategy-with-a-reusable-workflow
# * Reading input from the called workflow
# | https://docs.github.com/en/enterprise-cloud@latest/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_callinputs
# * Ternary operator
# | https://docs.github.com/en/actions/learn-github-actions/expressions#example
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- name: Setup Gradle # Used for caching
uses: gradle/actions/setup-gradle@v4
- name: Get version
id: version
run: echo "version=$(<VERSION)" >> "$GITHUB_OUTPUT"
- name: Build with Gradle
working-directory: ./plugins/${{ inputs.plugin }}
run: ./gradlew build -Dversion=${{ steps.version.outputs.version }} -Drevision=${{ inputs.revision }}
# - name: Test RPM package
# if: ${{ matrix.distribution == 'rpm' }}
# uses: addnab/docker-run-action@v3
# with:
# image: redhat/ubi9:latest
# options: -v ${{ github.workspace }}/artifacts/dist:/artifacts/dist
# run: |
# yum localinstall "/artifacts/dist/${{ steps.package.outputs.name }}" -y
# - name: Test DEB package
# if: ${{ matrix.distribution == 'deb' }}
# run: |
# sudo dpkg -i "artifacts/dist/${{ steps.package.outputs.name }}"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.plugin }}-${{ steps.version.outputs.version }}.${{ inputs.revision }}.zip
path: plugins/${{ inputs.plugin }}/build/distributions/${{ inputs.plugin }}-${{ steps.version.outputs.version }}.${{ inputs.revision }}.zip
if-no-files-found: error