From 6fbcd383e74044299bc76c153c6162cfac9c68fa Mon Sep 17 00:00:00 2001 From: yenienserrano Date: Mon, 27 Nov 2023 10:08:22 +0100 Subject: [PATCH 01/12] Change build slim action --- .github/workflows/build.yml | 41 ++++++++++++++++++++++++------------- package.json | 4 +++- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8c6d17454276..857f1ace5b20 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,28 +3,31 @@ name: Build on: - workflow_dispatch + workflow_dispatch: + inputs: + CHECKOUT_TO: # This is the branch to checkout to. Defaults to 'master' + description: 'The branch/tag/commit to checkout to' + required: true + default: '' jobs: - generate-linux-image: + build: runs-on: ubuntu-latest - name: Generate Linux image + name: Build defaults: run: working-directory: ./artifacts strategy: matrix: - include: - - name: Linux x64 - ext: tar.gz - suffix: linux-x64 - script: build-platform --linux --skip-os-packages --release + DISTRIBUTION: [ tar.gz ] + ARCHITECTURE: [ x64, arm64 ] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: ./artifacts + ref: ${{ inputs.CHECKOUT_TO }} - name: Setup Node uses: actions/setup-node@v3 @@ -52,20 +55,30 @@ jobs: - name: Get package version run: | echo "VERSION=$(yarn --silent pkg-version)" >> $GITHUB_ENV + echo "WZD_VERSION=$(yarn --silent wzd-version)" >> $GITHUB_ENV + echo "WZD_REVISION=$(yarn --silent wzd-revision)" >> $GITHUB_ENV - name: Get artifact build name run: | - echo "ARTIFACT_BUILD_NAME=opensearch-dashboards-${{ env.VERSION }}-${{ matrix.suffix }}.${{ matrix.ext }}" >> $GITHUB_ENV + echo "ARTIFACT_BUILD_NAME=wazuh-dashboard_${{ env.WZD_VERSION }}-${{ env.WZD_REVISION }}_${{ matrix.ARCHITECTURE }}_${{ inputs.CHECKOUT_TO }}.${{ matrix.DISTRIBUTION }}" >> $GITHUB_ENV - name: Run bootstrap run: yarn osd bootstrap - - name: Build `${{ matrix.name }}` - run: yarn ${{ matrix.script }} --release + - name: Build linux-x64 + if: matrix.ARCHITECTURE == 'x64' + run: yarn build-platform --linux --skip-os-packages --release + + - name: Build linux-arm64 + if: matrix.ARCHITECTURE == 'arm64' + run: yarn build-platform --linux-arm --skip-os-packages --release + + - name: Rename artifact + run: mv /home/runner/work/wazuh-dashboard/wazuh-dashboard/artifacts/target/opensearch-dashboards-${{ env.VERSION }}-linux-${{ matrix.ARCHITECTURE }}.${{ matrix.DISTRIBUTION }} /home/runner/work/wazuh-dashboard/wazuh-dashboard/artifacts/target/${{ env.ARTIFACT_BUILD_NAME }} - uses: actions/upload-artifact@v3 if: success() with: - name: ${{ matrix.suffix }}-${{ env.VERSION }} + name: ${{ env.ARTIFACT_BUILD_NAME }} path: ./artifacts/target/${{ env.ARTIFACT_BUILD_NAME }} - retention-days: 30 \ No newline at end of file + retention-days: 30 diff --git a/package.json b/package.json index bbeda013f17b..c7c1e6f718f1 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,9 @@ "docs:acceptApiChanges": "scripts/use_node --max-old-space-size=6144 scripts/check_published_api_changes.js --accept", "osd:bootstrap": "scripts/use_node scripts/build_ts_refs && scripts/use_node scripts/register_git_hook", "spec_to_console": "scripts/use_node scripts/spec_to_console", - "pkg-version": "scripts/use_node -e \"console.log(require('./package.json').version)\"" + "pkg-version": "scripts/use_node -e \"console.log(require('./package.json').version)\"", + "wzd-revision": "scripts/use_node -e \"console.log(require('./package.json').wazuh.revision)\"", + "wzd-version": "scripts/use_node -e \"console.log(require('./package.json').wazuh.version)\"" }, "repository": { "type": "git", From f45a8d7899d54bf502dbd122c583ccac4ffc93db Mon Sep 17 00:00:00 2001 From: yenienserrano Date: Wed, 29 Nov 2023 14:30:11 +0100 Subject: [PATCH 02/12] Add github action build final wazuh dashboard package --- .../build_wazuh_dashboard_with_plugins.yml | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 .github/workflows/build_wazuh_dashboard_with_plugins.yml diff --git a/.github/workflows/build_wazuh_dashboard_with_plugins.yml b/.github/workflows/build_wazuh_dashboard_with_plugins.yml new file mode 100644 index 000000000000..30d78b4751e1 --- /dev/null +++ b/.github/workflows/build_wazuh_dashboard_with_plugins.yml @@ -0,0 +1,91 @@ +name: Build final packages + +on: + workflow_dispatch: + inputs: + WAZUH_DASHBOARD_PACKAGE_X64: + description: 'Wazuh dashboard package x64' + required: true + default: '' + WAZUH_PLUGINS_PACKAGES: + description: 'Wazuh plugins packages' + required: true + default: '' + WAZUH_SECURITY_PLUGIN_PACKAGES: + description: 'Wazuh security packages' + required: true + default: '' +jobs: + Build-final-packages: + runs-on: ubuntu-latest + name: Generate final packages + strategy: + fail-fast: false + matrix: + DISTRIBUTION: [ tar.gz, deb, rpm ] + # TODO: Add arm64 support + ARCHITECTURE: [ x64 ] + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version-file: '.nvmrc' + registry-url: 'https://registry.npmjs.org' + + - name: Setup variables + run: | + echo "CURRENT_DIR=$(pwd -P)" >> $GITHUB_ENV + echo "VERSION=$(yarn --silent wzd-version)" >> $GITHUB_ENV + echo "REVISION=$(yarn --silent wzd-revision)" >> $GITHUB_ENV + + - name: Build the Wazuh Base x64 + run: | + bash ${{ env.CURRENT_DIR }}/dev-tools/build-packages/base/generate_base.sh \ + -v ${{ env.VERSION }} \ + -r ${{ env.REVISION }} \ + -a ${{ inputs.WAZUH_PLUGINS_PACKAGES }} \ + -s ${{ inputs.WAZUH_SECURITY_PLUGIN_PACKAGES }} \ + -b ${{ inputs.WAZUH_DASHBOARD_PACKAGE_X64 }} + + - name: Get base package name + run: | + echo "WAZUH_BASE=$(ls ${{ env.CURRENT_DIR }}/dev-tools/build-packages/base/output)" >> $GITHUB_ENV + + - name: Build the package + if: matrix.DISTRIBUTION != 'tar.gz' + run: | + bash ${{ env.CURRENT_DIR }}/dev-tools/build-packages/${{ matrix.DISTRIBUTION }}/launcher.sh \ + -p file://${{ env.CURRENT_DIR }}/dev-tools/build-packages/base/output/${{env.WAZUH_BASE}} \ + -v ${{ env.VERSION }} \ + -r ${{ env.REVISION }} + + - name: Get packages name + if: matrix.DISTRIBUTION != 'tar.gz' + run: | + echo "WAZUH_PACKAGES=$(find ${{ env.CURRENT_DIR }}/dev-tools/build-packages/${{ matrix.DISTRIBUTION }}/output -name "*.${{ matrix.DISTRIBUTION }}")" >> $GITHUB_ENV + echo "WAZUH_PACKAGE_NAME=wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_${{ matrix.ARCHITECTURE }}.${{ matrix.DISTRIBUTION }}" >> $GITHUB_ENV + + - name: Rename ${{ matrix.DISTRIBUTION }} packages + if: matrix.DISTRIBUTION != 'tar.gz' + run: | + mv ${{ env.WAZUH_PACKAGES }} ${{ env.CURRENT_DIR }}/dev-tools/build-packages/${{ matrix.DISTRIBUTION }}/output/${{ env.WAZUH_PACKAGE_NAME }} + + - name: Upload packages ${{ matrix.DISTRIBUTION }} + uses: actions/upload-artifact@v3 + if: success() && matrix.DISTRIBUTION != 'tar.gz' + with: + name: Wazuh_dashboard_package_${{ matrix.ARCHITECTURE }}_${{ matrix.DISTRIBUTION }} + path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/${{ matrix.DISTRIBUTION }}/output/${{ env.WAZUH_PACKAGE_NAME }} + retention-days: 30 + + + - name: Upload packages tar.gz + uses: actions/upload-artifact@v3 + if: success() && matrix.DISTRIBUTION == 'tar.gz' + with: + name: ${{env.WAZUH_BASE}} + path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/base/output/${{env.WAZUH_BASE}} + retention-days: 30 From 1630e15759849a5cd59e538ce6f49f490feefbc3 Mon Sep 17 00:00:00 2001 From: yenienserrano Date: Wed, 6 Dec 2023 17:06:25 +0100 Subject: [PATCH 03/12] Update Build final package Github action --- .github/workflows/build.yml | 8 ++ .../build_wazuh_dashboard_with_plugins.yml | 120 ++++++++++++------ package.json | 3 +- 3 files changed, 91 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 857f1ace5b20..44c9b62ba81d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,6 +3,13 @@ name: Build on: + workflow_call: + inputs: + CHECKOUT_TO: # This is the branch to checkout to. Defaults to 'master' + description: 'The branch/tag/commit to checkout to' + required: true + default: '' + type: string workflow_dispatch: inputs: CHECKOUT_TO: # This is the branch to checkout to. Defaults to 'master' @@ -26,6 +33,7 @@ jobs: - name: Checkout code uses: actions/checkout@v4 with: + repository: wazuh/wazuh-dashboard path: ./artifacts ref: ${{ inputs.CHECKOUT_TO }} diff --git a/.github/workflows/build_wazuh_dashboard_with_plugins.yml b/.github/workflows/build_wazuh_dashboard_with_plugins.yml index 30d78b4751e1..dee4b0a493af 100644 --- a/.github/workflows/build_wazuh_dashboard_with_plugins.yml +++ b/.github/workflows/build_wazuh_dashboard_with_plugins.yml @@ -3,26 +3,50 @@ name: Build final packages on: workflow_dispatch: inputs: - WAZUH_DASHBOARD_PACKAGE_X64: - description: 'Wazuh dashboard package x64' + REFERENCE_SECURITY_PLUGIN: + description: 'Reference Wazuh security packages (branch/tag/commit)' required: true default: '' - WAZUH_PLUGINS_PACKAGES: - description: 'Wazuh plugins packages' + REFERENCE_WAZUH_PLUGINS: + description: 'Reference Wazuh plugins (branch/tag/commit)' required: true default: '' - WAZUH_SECURITY_PLUGIN_PACKAGES: - description: 'Wazuh security packages' + REFERENCE_WAZUH_DASHBOARD: + description: 'Reference Wazuh dashboard (branch/tag/commit)' required: true default: '' + DISTRIBUTION: + description: 'Distribution to build (--deb | --rpm | --tar | --all-platforms)' + required: true + default: '' + jobs: + build-plugins: + name: Build plugins + uses: wazuh/wazuh-dashboard-plugins/.github/workflows/manual-build.yml@6194-updating-github-actions-to-be-able-to-use-them-from-other-repositories + with: + reference: ${{ inputs.REFERENCE_WAZUH_PLUGINS }} + + build-dashboard: + name: Build dashboard + uses: yenienserrano/wazuh-dashboard/.github/workflows/build.yml@119-update-packages-generation-tools + with: + CHECKOUT_TO: ${{ inputs.REFERENCE_WAZUH_DASHBOARD }} + + build-security-plugin: + name: Build security plugin + uses: wazuh/wazuh-security-dashboards-plugin/.github/workflows/manual-build.yml@32-updating-github-actions-to-be-able-to-use-them-from-other-repositories + with: + reference: ${{ inputs.REFERENCE_SECURITY_PLUGIN }} + + Build-final-packages: + needs: [build-plugins, build-dashboard, build-security-plugin] runs-on: ubuntu-latest name: Generate final packages strategy: fail-fast: false matrix: - DISTRIBUTION: [ tar.gz, deb, rpm ] # TODO: Add arm64 support ARCHITECTURE: [ x64 ] steps: @@ -41,51 +65,69 @@ jobs: echo "VERSION=$(yarn --silent wzd-version)" >> $GITHUB_ENV echo "REVISION=$(yarn --silent wzd-revision)" >> $GITHUB_ENV - - name: Build the Wazuh Base x64 + - name: Setup packages names run: | - bash ${{ env.CURRENT_DIR }}/dev-tools/build-packages/base/generate_base.sh \ - -v ${{ env.VERSION }} \ - -r ${{ env.REVISION }} \ - -a ${{ inputs.WAZUH_PLUGINS_PACKAGES }} \ - -s ${{ inputs.WAZUH_SECURITY_PLUGIN_PACKAGES }} \ - -b ${{ inputs.WAZUH_DASHBOARD_PACKAGE_X64 }} + echo "WAZUH_DASHBOARD_SLIM=wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_${{ matrix.ARCHITECTURE }}_${{ inputs.REFERENCE_WAZUH_DASHBOARD }}.tar.gz" >> $GITHUB_ENV + echo "WAZUH_SECURITY_PLUGIN=wazuh-security-dashboards-plugin_${{ env.VERSION }}-${{ env.REVISION }}_${{ inputs.REFERENCE_SECURITY_PLUGIN }}.zip" >> $GITHUB_ENV + echo "WAZUH_PLUGINS=wazuh-dashboard-plugins_${{ env.VERSION }}-${{ env.REVISION }}_${{ inputs.REFERENCE_WAZUH_PLUGINS }}.zip" >> $GITHUB_ENV - - name: Get base package name - run: | - echo "WAZUH_BASE=$(ls ${{ env.CURRENT_DIR }}/dev-tools/build-packages/base/output)" >> $GITHUB_ENV + - name: Download dashboard artifact + uses: actions/download-artifact@v3 + with: + name: ${{ env.WAZUH_DASHBOARD_SLIM }} + path: ${{ env.CURRENT_DIR }}/artifacts/dashboard - - name: Build the package - if: matrix.DISTRIBUTION != 'tar.gz' - run: | - bash ${{ env.CURRENT_DIR }}/dev-tools/build-packages/${{ matrix.DISTRIBUTION }}/launcher.sh \ - -p file://${{ env.CURRENT_DIR }}/dev-tools/build-packages/base/output/${{env.WAZUH_BASE}} \ - -v ${{ env.VERSION }} \ - -r ${{ env.REVISION }} + - name: Download security plugin artifact + uses: actions/download-artifact@v3 + with: + name: ${{ env.WAZUH_SECURITY_PLUGIN }} + path: ${{ env.CURRENT_DIR }}/artifacts/security-plugin + + - name: Download plugins artifacts + uses: actions/download-artifact@v3 + with: + name: ${{ env.WAZUH_PLUGINS }} + path: ${{ env.CURRENT_DIR }}/artifacts/plugins - - name: Get packages name - if: matrix.DISTRIBUTION != 'tar.gz' + - name: Zip plugins run: | - echo "WAZUH_PACKAGES=$(find ${{ env.CURRENT_DIR }}/dev-tools/build-packages/${{ matrix.DISTRIBUTION }}/output -name "*.${{ matrix.DISTRIBUTION }}")" >> $GITHUB_ENV - echo "WAZUH_PACKAGE_NAME=wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_${{ matrix.ARCHITECTURE }}.${{ matrix.DISTRIBUTION }}" >> $GITHUB_ENV + zip -r -j ${{ env.CURRENT_DIR }}/artifacts/wazuh-package.zip ${{ env.CURRENT_DIR }}/artifacts/plugins + zip -r -j ${{ env.CURRENT_DIR }}/artifacts/security-package.zip ${{ env.CURRENT_DIR }}/artifacts/security-plugin + zip -r -j ${{ env.CURRENT_DIR }}/artifacts/dashboard-package.zip ${{ env.CURRENT_DIR }}/artifacts/dashboard/${{ env.WAZUH_DASHBOARD_SLIM }} - - name: Rename ${{ matrix.DISTRIBUTION }} packages - if: matrix.DISTRIBUTION != 'tar.gz' + + - name: Build packages run: | - mv ${{ env.WAZUH_PACKAGES }} ${{ env.CURRENT_DIR }}/dev-tools/build-packages/${{ matrix.DISTRIBUTION }}/output/${{ env.WAZUH_PACKAGE_NAME }} + bash ${{ env.CURRENT_DIR }}/dev-tools/build-packages/base/generate_base.sh \ + -v ${{ env.VERSION }} \ + -r ${{ env.REVISION }} \ + -a file://${{env.CURRENT_DIR}}/artifacts/wazuh-package.zip \ + -s file://${{env.CURRENT_DIR}}/artifacts/security-package.zip \ + -b file://${{env.CURRENT_DIR}}/artifacts/dashboard-package.zip \ + ${{ inputs.DISTRIBUTION }} + - - name: Upload packages ${{ matrix.DISTRIBUTION }} + - name: Upload tar packages uses: actions/upload-artifact@v3 - if: success() && matrix.DISTRIBUTION != 'tar.gz' + if: success() && ( inputs.DISTRIBUTION == 'tar' || inputs.DISTRIBUTION == 'all-platforms' ) with: - name: Wazuh_dashboard_package_${{ matrix.ARCHITECTURE }}_${{ matrix.DISTRIBUTION }} - path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/${{ matrix.DISTRIBUTION }}/output/${{ env.WAZUH_PACKAGE_NAME }} + name: wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}-linux-${{ matrix.ARCHITECTURE }}.tar.gz + path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}-linux-${{ matrix.ARCHITECTURE }}.tar.gz retention-days: 30 - - name: Upload packages tar.gz + - name: Upload deb packages + uses: actions/upload-artifact@v3 + if: success() && ( inputs.DISTRIBUTION == 'deb' || inputs.DISTRIBUTION == 'all-platforms' ) + with: + name: wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_amd64.deb + path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_amd64.deb + retention-days: 30 + + - name: Upload rpm packages uses: actions/upload-artifact@v3 - if: success() && matrix.DISTRIBUTION == 'tar.gz' + if: success() && ( inputs.DISTRIBUTION == 'rpm' || inputs.DISTRIBUTION == 'all-platforms' ) with: - name: ${{env.WAZUH_BASE}} - path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/base/output/${{env.WAZUH_BASE}} + name: wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}.x86_64.rpm + path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}.x86_64.rpm retention-days: 30 diff --git a/package.json b/package.json index c7c1e6f718f1..f469f9163752 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ "sha": "6cb7fec4e154faa0a4a3fee4b33dfef91b9870d9" }, "wazuh": { - "version": "4.9.0" + "version": "4.9.0", + "revision": "00" }, "homepage": "https://opensearch.org", "bugs": { From daffa8ff6fd7191a4a0ec61725c033c953fb3771 Mon Sep 17 00:00:00 2001 From: yenienserrano Date: Thu, 7 Dec 2023 11:06:47 +0100 Subject: [PATCH 04/12] test --- .github/workflows/build_wazuh_dashboard_with_plugins.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wazuh_dashboard_with_plugins.yml b/.github/workflows/build_wazuh_dashboard_with_plugins.yml index dee4b0a493af..8607cd748384 100644 --- a/.github/workflows/build_wazuh_dashboard_with_plugins.yml +++ b/.github/workflows/build_wazuh_dashboard_with_plugins.yml @@ -98,7 +98,7 @@ jobs: - name: Build packages run: | - bash ${{ env.CURRENT_DIR }}/dev-tools/build-packages/base/generate_base.sh \ + bash ${{ env.CURRENT_DIR }}/dev-tools/build-packages/build-packages.sh \ -v ${{ env.VERSION }} \ -r ${{ env.REVISION }} \ -a file://${{env.CURRENT_DIR}}/artifacts/wazuh-package.zip \ From 52b8de95ca42a8b704d9533e89920c71c4b4702a Mon Sep 17 00:00:00 2001 From: yenienserrano Date: Thu, 7 Dec 2023 16:22:06 +0100 Subject: [PATCH 05/12] Update Build final package Github action test version --- .../build_wazuh_dashboard_with_plugins.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build_wazuh_dashboard_with_plugins.yml b/.github/workflows/build_wazuh_dashboard_with_plugins.yml index 8607cd748384..6cdd15042544 100644 --- a/.github/workflows/build_wazuh_dashboard_with_plugins.yml +++ b/.github/workflows/build_wazuh_dashboard_with_plugins.yml @@ -23,7 +23,7 @@ on: jobs: build-plugins: name: Build plugins - uses: wazuh/wazuh-dashboard-plugins/.github/workflows/manual-build.yml@6194-updating-github-actions-to-be-able-to-use-them-from-other-repositories + uses: wazuh/wazuh-dashboard-plugins/.github/workflows/manual-build.yml@master with: reference: ${{ inputs.REFERENCE_WAZUH_PLUGINS }} @@ -35,7 +35,7 @@ jobs: build-security-plugin: name: Build security plugin - uses: wazuh/wazuh-security-dashboards-plugin/.github/workflows/manual-build.yml@32-updating-github-actions-to-be-able-to-use-them-from-other-repositories + uses: wazuh/wazuh-security-dashboards-plugin/.github/workflows/manual-build.yml@4.9.0 with: reference: ${{ inputs.REFERENCE_SECURITY_PLUGIN }} @@ -98,7 +98,8 @@ jobs: - name: Build packages run: | - bash ${{ env.CURRENT_DIR }}/dev-tools/build-packages/build-packages.sh \ + cd ${{ env.CURRENT_DIR }}/dev-tools/build-packages + bash ./build-packages.sh \ -v ${{ env.VERSION }} \ -r ${{ env.REVISION }} \ -a file://${{env.CURRENT_DIR}}/artifacts/wazuh-package.zip \ @@ -109,7 +110,7 @@ jobs: - name: Upload tar packages uses: actions/upload-artifact@v3 - if: success() && ( inputs.DISTRIBUTION == 'tar' || inputs.DISTRIBUTION == 'all-platforms' ) + if: success() && ( contains(inputs.DISTRIBUTION, 'tar') || contains(inputs.DISTRIBUTION, 'all-platforms') ) with: name: wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}-linux-${{ matrix.ARCHITECTURE }}.tar.gz path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}-linux-${{ matrix.ARCHITECTURE }}.tar.gz @@ -118,16 +119,16 @@ jobs: - name: Upload deb packages uses: actions/upload-artifact@v3 - if: success() && ( inputs.DISTRIBUTION == 'deb' || inputs.DISTRIBUTION == 'all-platforms' ) + if: success() && ( contains(inputs.DISTRIBUTION, 'deb') || contains(inputs.DISTRIBUTION, 'all-platforms') ) with: name: wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_amd64.deb - path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_amd64.deb + path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/deb/wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_amd64.deb retention-days: 30 - name: Upload rpm packages uses: actions/upload-artifact@v3 - if: success() && ( inputs.DISTRIBUTION == 'rpm' || inputs.DISTRIBUTION == 'all-platforms' ) + if: success() && ( contains(inputs.DISTRIBUTION, 'rpm') || contains(inputs.DISTRIBUTION, 'all-platforms') ) with: name: wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}.x86_64.rpm - path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}.x86_64.rpm + path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/rpm/wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}.x86_64.rpm retention-days: 30 From a0ccb620d817c90a898f1c41b3c40b1f8ff9025b Mon Sep 17 00:00:00 2001 From: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> Date: Mon, 11 Dec 2023 09:49:01 +0100 Subject: [PATCH 06/12] Update build_wazuh_dashboard_with_plugins.yml Signed-off-by: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> --- .github/workflows/build_wazuh_dashboard_with_plugins.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wazuh_dashboard_with_plugins.yml b/.github/workflows/build_wazuh_dashboard_with_plugins.yml index 6cdd15042544..a1417bc30d7b 100644 --- a/.github/workflows/build_wazuh_dashboard_with_plugins.yml +++ b/.github/workflows/build_wazuh_dashboard_with_plugins.yml @@ -29,7 +29,7 @@ jobs: build-dashboard: name: Build dashboard - uses: yenienserrano/wazuh-dashboard/.github/workflows/build.yml@119-update-packages-generation-tools + uses: yenienserrano/wazuh-dashboard/.github/workflows/build.yml@4.9.0 with: CHECKOUT_TO: ${{ inputs.REFERENCE_WAZUH_DASHBOARD }} From 2d6da6fb2029bf60727da63781558aad3f9e8809 Mon Sep 17 00:00:00 2001 From: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:15:05 +0100 Subject: [PATCH 07/12] Test actions Signed-off-by: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> --- .github/workflows/build_wazuh_dashboard_with_plugins.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wazuh_dashboard_with_plugins.yml b/.github/workflows/build_wazuh_dashboard_with_plugins.yml index a1417bc30d7b..1085749f1ef7 100644 --- a/.github/workflows/build_wazuh_dashboard_with_plugins.yml +++ b/.github/workflows/build_wazuh_dashboard_with_plugins.yml @@ -29,7 +29,7 @@ jobs: build-dashboard: name: Build dashboard - uses: yenienserrano/wazuh-dashboard/.github/workflows/build.yml@4.9.0 + uses: yenienserrano/wazuh-dashboard/.github/workflows/build.yml@120-update-github-actions with: CHECKOUT_TO: ${{ inputs.REFERENCE_WAZUH_DASHBOARD }} From c068e3f37b59f91951fae15abf2fb9531282f70d Mon Sep 17 00:00:00 2001 From: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:16:38 +0100 Subject: [PATCH 08/12] Update build_wazuh_dashboard_with_plugins.yml Signed-off-by: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> --- .github/workflows/build_wazuh_dashboard_with_plugins.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wazuh_dashboard_with_plugins.yml b/.github/workflows/build_wazuh_dashboard_with_plugins.yml index 1085749f1ef7..2a4a0c0c717e 100644 --- a/.github/workflows/build_wazuh_dashboard_with_plugins.yml +++ b/.github/workflows/build_wazuh_dashboard_with_plugins.yml @@ -29,7 +29,7 @@ jobs: build-dashboard: name: Build dashboard - uses: yenienserrano/wazuh-dashboard/.github/workflows/build.yml@120-update-github-actions + uses: wazuh/wazuh-dashboard/.github/workflows/build.yml@120-update-github-actions with: CHECKOUT_TO: ${{ inputs.REFERENCE_WAZUH_DASHBOARD }} From e6b2a7a545e1c95f462a2120d5fd81785713ae3d Mon Sep 17 00:00:00 2001 From: yenienserrano Date: Fri, 15 Dec 2023 17:59:44 +0100 Subject: [PATCH 09/12] Diferents jobs for deb and rpm packages --- .../build_wazuh_dashboard_with_plugins.yml | 94 +++++++++++++++++-- 1 file changed, 86 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build_wazuh_dashboard_with_plugins.yml b/.github/workflows/build_wazuh_dashboard_with_plugins.yml index 2a4a0c0c717e..10f503db69c7 100644 --- a/.github/workflows/build_wazuh_dashboard_with_plugins.yml +++ b/.github/workflows/build_wazuh_dashboard_with_plugins.yml @@ -16,7 +16,7 @@ on: required: true default: '' DISTRIBUTION: - description: 'Distribution to build (--deb | --rpm | --tar | --all-platforms)' + description: 'Distribution to build (deb | rpm | tar | all-platforms)' required: true default: '' @@ -40,7 +40,7 @@ jobs: reference: ${{ inputs.REFERENCE_SECURITY_PLUGIN }} - Build-final-packages: + Build-base-package: needs: [build-plugins, build-dashboard, build-security-plugin] runs-on: ubuntu-latest name: Generate final packages @@ -105,30 +105,108 @@ jobs: -a file://${{env.CURRENT_DIR}}/artifacts/wazuh-package.zip \ -s file://${{env.CURRENT_DIR}}/artifacts/security-package.zip \ -b file://${{env.CURRENT_DIR}}/artifacts/dashboard-package.zip \ - ${{ inputs.DISTRIBUTION }} + --tar - name: Upload tar packages uses: actions/upload-artifact@v3 - if: success() && ( contains(inputs.DISTRIBUTION, 'tar') || contains(inputs.DISTRIBUTION, 'all-platforms') ) with: name: wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}-linux-${{ matrix.ARCHITECTURE }}.tar.gz path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}-linux-${{ matrix.ARCHITECTURE }}.tar.gz retention-days: 30 + build-deb-package: + needs: [Build-base-package] + if: ( contains(inputs.DISTRIBUTION, 'deb') || contains(inputs.DISTRIBUTION, 'all-platforms') ) + runs-on: ubuntu-latest + name: Build deb package + strategy: + fail-fast: false + matrix: + # TODO: Add arm64 support + ARCHITECTURE: [ x64 ] + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version-file: '.nvmrc' + registry-url: 'https://registry.npmjs.org' + + - name: Setup variables + run: | + echo "CURRENT_DIR=$(pwd -P)" >> $GITHUB_ENV + echo "VERSION=$(yarn --silent wzd-version)" >> $GITHUB_ENV + echo "REVISION=$(yarn --silent wzd-revision)" >> $GITHUB_ENV + + - name: Download dashboard artifact + uses: actions/download-artifact@v3 + with: + name: wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}-linux-${{ matrix.ARCHITECTURE }}.tar.gz + path: ${{ env.CURRENT_DIR }}/artifacts/dashboard-tar + + - name: Build packages + run: | + cd ${{ env.CURRENT_DIR }}/dev-tools/build-packages/deb/ + bash ./launcher.sh \ + -v ${{ env.VERSION }} \ + -r ${{ env.REVISION }} \ + -p file://${{env.CURRENT_DIR}}/artifacts/dashboard-tar/wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}-linux-${{ matrix.ARCHITECTURE }}.tar.gz - name: Upload deb packages uses: actions/upload-artifact@v3 - if: success() && ( contains(inputs.DISTRIBUTION, 'deb') || contains(inputs.DISTRIBUTION, 'all-platforms') ) + if: success() with: name: wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_amd64.deb - path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/deb/wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_amd64.deb + path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/deb/output/wazuh-dashboard_${{ env.VERSION }}-${{ env.REVISION }}_amd64.deb retention-days: 30 + + build-rpm-package: + needs: [Build-base-package] + if: ( contains(inputs.DISTRIBUTION, 'rpm') || contains(inputs.DISTRIBUTION, 'all-platforms') ) + runs-on: ubuntu-latest + name: Build rpm package + strategy: + fail-fast: false + matrix: + ARCHITECTURE: [ x64 ] + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version-file: '.nvmrc' + registry-url: 'https://registry.npmjs.org' + + - name: Setup variables + run: | + echo "CURRENT_DIR=$(pwd -P)" >> $GITHUB_ENV + echo "VERSION=$(yarn --silent wzd-version)" >> $GITHUB_ENV + echo "REVISION=$(yarn --silent wzd-revision)" >> $GITHUB_ENV + + - name: Download dashboard artifact + uses: actions/download-artifact@v3 + with: + name: wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}-linux-${{ matrix.ARCHITECTURE }}.tar.gz + path: ${{ env.CURRENT_DIR }}/artifacts/dashboard-tar + + - name: Build packages + run: | + cd ${{ env.CURRENT_DIR }}/dev-tools/build-packages/rpm/ + bash ./launcher.sh \ + -v ${{ env.VERSION }} \ + -r ${{ env.REVISION }} \ + -p file://${{env.CURRENT_DIR}}/artifacts/dashboard-tar/wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}-linux-${{ matrix.ARCHITECTURE }}.tar.gz + - name: Upload rpm packages uses: actions/upload-artifact@v3 - if: success() && ( contains(inputs.DISTRIBUTION, 'rpm') || contains(inputs.DISTRIBUTION, 'all-platforms') ) + if: success() with: name: wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}.x86_64.rpm - path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/output/rpm/wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}.x86_64.rpm + path: ${{ env.CURRENT_DIR }}/dev-tools/build-packages/rpm/output/wazuh-dashboard-${{ env.VERSION }}-${{ env.REVISION }}.x86_64.rpm retention-days: 30 From 15b262aadfe4ab4a2c3044e0fbe094ecd70bd0ad Mon Sep 17 00:00:00 2001 From: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> Date: Mon, 18 Dec 2023 09:44:20 +0100 Subject: [PATCH 10/12] Update build_wazuh_dashboard_with_plugins.yml Signed-off-by: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> --- .github/workflows/build_wazuh_dashboard_with_plugins.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wazuh_dashboard_with_plugins.yml b/.github/workflows/build_wazuh_dashboard_with_plugins.yml index 10f503db69c7..8ab9a563409e 100644 --- a/.github/workflows/build_wazuh_dashboard_with_plugins.yml +++ b/.github/workflows/build_wazuh_dashboard_with_plugins.yml @@ -29,7 +29,7 @@ jobs: build-dashboard: name: Build dashboard - uses: wazuh/wazuh-dashboard/.github/workflows/build.yml@120-update-github-actions + uses: wazuh/wazuh-dashboard/.github/workflows/build.yml@4.9.0 with: CHECKOUT_TO: ${{ inputs.REFERENCE_WAZUH_DASHBOARD }} From e08dc9df48e9a4389e2f082b0ef434b689f4ea55 Mon Sep 17 00:00:00 2001 From: yenienserrano Date: Mon, 18 Dec 2023 17:18:06 +0100 Subject: [PATCH 11/12] Update generate_base.sh --- dev-tools/build-packages/base/generate_base.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dev-tools/build-packages/base/generate_base.sh b/dev-tools/build-packages/base/generate_base.sh index 530f00a0bf39..ad80a08c6c4b 100755 --- a/dev-tools/build-packages/base/generate_base.sh +++ b/dev-tools/build-packages/base/generate_base.sh @@ -58,6 +58,7 @@ build() { mkdir -p $tmp_dir cd $tmp_dir mkdir -p applications + mkdir -p dashboards if [[ $app =~ $valid_url ]]; then if ! curl --output applications/app.zip --silent --fail "${app}"; then echo "The given URL or Path to the Wazuh Apps is not working: ${app}" @@ -83,9 +84,9 @@ build() { clean 1 else echo "Extracting Wazuh Dashboard base" - unzip -q wazuh-dashboard.zip -d . + unzip -q wazuh-dashboard.zip -d ./dashboards/ rm wazuh-dashboard.zip - mv $(ls | grep wazuh-dashboard) wazuh-dashboard.tar.gz + mv ./dashboards/$(ls ./dashboards) wazuh-dashboard.tar.gz fi else if ! curl --output wazuh-dashboard.tar.gz --silent --fail "${base}"; then From 255b70c99e5ee6391b4713b8bbbd4939cac7dd81 Mon Sep 17 00:00:00 2001 From: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> Date: Tue, 19 Dec 2023 13:05:54 +0100 Subject: [PATCH 12/12] Update build.yml Signed-off-by: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 44c9b62ba81d..8baaf0415e3c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,7 +27,7 @@ jobs: strategy: matrix: DISTRIBUTION: [ tar.gz ] - ARCHITECTURE: [ x64, arm64 ] + ARCHITECTURE: [ x64 ] steps: - name: Checkout code