Skip to content

Commit

Permalink
Update the actions' version (#7142)
Browse files Browse the repository at this point in the history
* feat: integrate ButtonExploreAgent component into MainModuleAgent for enhanced agent interaction and updated layout consistency

* feat: add pinned agent mechanic across all pages for improved consistency in functionality and user experience

* feat: enhance ButtonPinnedAgent with clsx for dynamic class management and improved background styling

* refactor: clean up agent selector styles by removing unnecessary focus and hover states for better maintainability

* refactor: update WzButtonProps type to include EUI component properties for better flexibility and maintainability

* refactor: improve ButtonPinnedAgent structure by adding data-test attribute and simplifying JSX for cleaner code readability

* test: add tests for explore agent button rendering in various agent tabs for improved coverage and verification of UI functionality

* test: add tests for explore agent button rendering in various agent tabs for improved coverage and verification of UI functionality

refactor: enhance MainModuleAgent layout by adding margin and padding styles to EuiFlexItems for improved UI consistency

* refactor: add newline in ButtonPinnedAgent for improved readability and code consistency in explore agent button component

* chore: update CHANGELOG to clarify pinned agent mechanic in inventory, stats, and configuration for consistency across pages

* refactor: add unPinAgent functionality to agent components for enhanced user interaction and UI consistency across agent views

* refactor: remove unused EuiButtonEmpty import for cleaner code in configuration overview component

* refactor: update useGenericRequest hook for improved type safety and cleaner data handling in API requests

* refactor: enhance type safety in InventoryMetrics and streamline API request handling with updated useGenericRequest usage

* refactor: rename ErrorOrchestratorService to ErrorService for improved clarity and type safety in error handling logic

* refactor: add JSDoc comments to GenericRequest for improved type safety and better documentation of request parameters

* refactor: improve cluster handling logic and error management in WzConfigurationSwitch for better state management and readability

* refactor: streamline AgentStats component with improved type safety and error handling for enhanced clarity and maintainability

* Fix Prettier issue

* refactor: update test descriptions in MainModuleAgent tests to clarify the "Pinned Agent" button functionality across tabs

* refactor: remove deprecated Route for syscollector in AgentView to clean up component structure and improve readability

* refactor: rename PartialRecordMock to DeepPartialRecordMock for better clarity and maintainability in type definitions

* feat: add mock agent data for Debian, Windows, and Darwin to enhance testing and provide a comprehensive environment setup

* refactor: replace inline AGENT mock with import from test mocks for improved test organization and maintainability

* test: add API call verification in AgentStats tests to ensure correct fetching of agent stats during component rendering

* test: enhance AgentStats tests to verify API calls with correct agent IDs and endpoints on component updates

* test: refine AgentStats test description to clarify API call behavior when switching agents

* test: improve AgentStats tests to ensure correct column structure, titles, and CSV filename updates on rendering changes

* refactor: update breadcrumb types in useGlobalBreadcrumb for improved type safety and readability in context management

* refactor: enhance withGlobalBreadcrumb HOC for better type handling and maintainability in breadcrumb logic

* refactor: replace hardcoded path in agent stats breadcrumb with SECTIONS constant for improved maintainability and readability

* refactor: replace hardcoded agents-preview path with SECTIONS constant for improved maintainability and readability in configuration-main.js

* refactor: improve agent handling in withGlobalBreadcrumb for better maintainability and readability in configuration-main.js

* refactor: add global breadcrumb support in AgentView for better navigation and maintainability in index.tsx

* refactor: update unPinAgent to navigate with new URL structure for improved navigation in index.tsx

* refactor: add withGlobalBreadcrumb HOC to enhance navigation structure in agent index.tsx

* refactor: enhance AgentStats tests with clearer descriptions for column structure and title checks amidst agent changes

* refactor: replace jQuery with native DOM method for setting title attribute in breadcrumb configuration component

* refactor: improve syscollector metrics tests by adding agent ID handling and verifying data fetching for different agents

* refactor: add unit test for SoftwareTab rendering WindowsUpdatesTable on Windows platform in syscollector agent component

* refactor: add unit test for WindowsUpdatesTable to verify correct hotfixes endpoint when changing agents in syscollector component

* refactor: fix endpoint string in WindowsUpdatesTable test for accurate hotfixes URL when changing agents in syscollector component

* refactor: enhance WindowsUpdatesTable test to validate API requests for different agent IDs in syscollector component

* refactor: handle potential undefined values in packages-table component for safer access to sorting fields when rendering table

* test: add test suite for PackagesTable to validate API requests and table rendering for different agent IDs in syscollector component

* refactor: safeguard against undefined values for sorting fields in multiple syscollector table components during rendering

* test: add test suite for NetworkInterfacesTable to verify API requests and rendering behavior for changing agent IDs

* test: update test descriptions in PackagesTable and WindowsUpdatesTable for clarity on data being fetched for given agent IDs

* test: add tests for NetworkPortsTable to verify correct API requests and rendering behavior for different agent IDs

* test: rename test suite to NetworkPortsTable for clarity and proper context in related API request tests

* test: add NetworkSettingsTable tests to ensure correct rendering and API requests for changing agent IDs

* test: add tests for ProcessesTable to validate rendering and API requests when switching between agent IDs

* fix: improve optional chaining to direct access for initial sorting fields in network tables for better readability

* test: introduce reusable functions for validating agent API requests and endpoint rendering in various system collector tables

* ci: update GitHub Actions workflows to use actions/upload-artifact@v4 and clean up formatting across YAML files

* ci: upgrade actions/checkout to v4 across multiple workflows for consistency and improved features

* ci: upgrade Node.js setup to actions/setup-node@v4 in eslint and prettier workflows for enhanced performance and consistency

* ci: update manual-build workflow to use actions/download-artifact@v4 for improved functionality and consistency with other workflows

* ci: upgrade actions/dependency-review-action to v4 for enhanced functionality and consistency in dependency review process

* ci: add overwrite option in Cypress report workflows for improved file handling and consistency across all test configurations

* ci: standardize YAML formatting in workflows for better readability and consistency across all templates and steps

---------

Co-authored-by: Federico Rodriguez <federico.rodriguez@wazuh.com>
  • Loading branch information
guidomodarelli and asteriscos authored Nov 13, 2024
1 parent 7cf25b0 commit 3186b3a
Show file tree
Hide file tree
Showing 12 changed files with 382 additions and 373 deletions.
2 changes: 1 addition & 1 deletion .github/actions/comment-test-coverage/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v1
uses: actions/checkout@v4

- name: Run Jasmine tests
run: npm run test -- --no-watch --no-progress --browsers=ChromeHeadlessCI
Expand Down
61 changes: 30 additions & 31 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
name: 'CodeQL'

on:
schedule:
- cron: '0 8 * * *'
- cron: '0 8 * * *'
workflow_dispatch:

jobs:
Expand All @@ -28,45 +28,44 @@ jobs:
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
language: ['javascript']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Checkout repository
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2

# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh

# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: '/language:${{matrix.language}}'
164 changes: 83 additions & 81 deletions .github/workflows/cypress-basic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,102 +12,104 @@ on:
description: 'Wazuh Version'
default: 'v4.3.4'
required: true
elastic-version:
elastic-version:
description: 'Elastic Version'
default: '7.16.3'
required: true
ubuntu-cypress-version:
ubuntu-cypress-version:
description: 'Ubuntu Cypress Version'
default: '3.0.0'
required: true
url-package:
description: 'Package Download Url'
required: false
default: 'https://packages-dev.wazuh.com/pre-release/ui/kibana/wazuh_kibana-4.3.4_7.16.3-1.zip'
required: false
default: 'https://packages-dev.wazuh.com/pre-release/ui/kibana/wazuh_kibana-4.3.4_7.16.3-1.zip'

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
setup-wazuh-kibana-app:
name: Run setup environment wazuh kibana app
runs-on: ubuntu-latest
steps:
- name: Step 01 - Set up environment variables
run: |
echo "PATH_TEMPLATE=$GITHUB_WORKSPACE/wazuh-app-environments/templates_elastic_prod/es_basic-wz_cluster-agent/" >> $GITHUB_ENV
- name: Step 01 - Set up environment variables
run: |
echo "PATH_TEMPLATE=$GITHUB_WORKSPACE/wazuh-app-environments/templates_elastic_prod/es_basic-wz_cluster-agent/" >> $GITHUB_ENV
echo "Information about the workflow (basic):
wazuh-version: ${{ github.event.inputs.wazuh-version }}
elastic-version: ${{ github.event.inputs.elastic-version }}
ubuntu-cypress-version: ${{ github.event.inputs.ubuntu-cypress-version }}
url-package: ${{ github.event.inputs.url-package }}"
- name: Step 02 - Download Project wazuh-app-environments
uses: actions/checkout@v2
with:
repository: matiasmoreno876/wazuh-app-environments
ref: 'master'
path: wazuh-app-environments
token: ${{ secrets.FE_SECRET_TOKEN }}
- name: Step 03 - Configuring templates docker environment
run: |
cd $GITHUB_WORKSPACE/wazuh-app-environments/
mkdir packages
cd ${{ env.PATH_TEMPLATE }}
sed -i -e 's|WAZUH_VERSION=.*|WAZUH_VERSION=${{ github.event.inputs.wazuh-version }}|g' ./.env
sed -i -e 's|ELASTIC_VERSION=.*|ELASTIC_VERSION=${{ github.event.inputs.elastic-version }}|g' ./.env
sed -i -e 's|UBUNTU_CYPRESS_VERSION=.*|UBUNTU_CYPRESS_VERSION=${{ github.event.inputs.ubuntu-cypress-version }}|g' ./.env
cat .env
- name: Step 04 - Starting containers
run: |
cd ${{ env.PATH_TEMPLATE }}
docker-compose up -d
echo CONTINUES AFTER 15 SECONDS ...
sleep 15s
- name: Step 05 - Installing package from url
run: |
cd ${{ env.PATH_TEMPLATE }}
docker exec $(docker-compose ps -q kibana) bin/kibana-plugin install ${{ github.event.inputs.url-package }}
docker-compose restart kibana
echo CONTINUES AFTER 60 SECONDS ...
sleep 60s
docker-compose ps
- name: Step 06 - Configuring ip container into wazuh.yml
run: |
cd ${{ env.PATH_TEMPLATE }}
docker exec $(docker-compose ps -q kibana) sed -i -e "s/url: https:\/\/localhost/url: https:\/\/wazuh-manager-master/g" /usr/share/kibana/data/wazuh/config/wazuh.yml
docker exec $(docker-compose ps -q kibana) cat /usr/share/kibana/data/wazuh/config/wazuh.yml
- name: Step 07 - Run Cypress tests
id: run-cypress-test
run: |
cd ${{ env.PATH_TEMPLATE }}
docker exec $(docker-compose ps -q cypress) bash -c " . /home/automation/nvm/nvm.sh && nvm use && npm run cypress:run-headless:github-actions:basic" | tee cypress.log
continue-on-error: true
- name: Step 08 - Run Cypress reports
run: |
cd ${{ env.PATH_TEMPLATE }}
docker exec $(docker-compose ps -q cypress) bash -c " . /home/automation/nvm/nvm.sh && nvm use && npm run cypress:report"
- name: Step 09 - Archive reports
uses: actions/upload-artifact@v2
with:
name: cypress-reports_BASIC_${{ github.event.inputs.wazuh-version }}-${{ github.event.inputs.elastic-version }}
path: ${{ env.PATH_TEMPLATE }}/report/*
- name: Step 10 - Log parsing
run: |
cd ${{ env.PATH_TEMPLATE }}
echo "TEST_SKIPPED=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF)}')" >> $GITHUB_ENV
echo "TEST_PENDING=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF-1)}')" >> $GITHUB_ENV
echo "TEST_FAILING=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF-2)}')" >> $GITHUB_ENV
echo "TEST_PASSING=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF-3)}')" >> $GITHUB_ENV
echo "TEST_TOTAL=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF-4)}')" >> $GITHUB_ENV
echo "TEST_TIME=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF-5)}')" >> $GITHUB_ENV
- name: Step 11 - Post to a Slack channel
id: slack
uses: slackapi/slack-github-action@v1.19.0
with:
echo "Information about the workflow (basic):
wazuh-version: ${{ github.event.inputs.wazuh-version }}
elastic-version: ${{ github.event.inputs.elastic-version }}
ubuntu-cypress-version: ${{ github.event.inputs.ubuntu-cypress-version }}
url-package: ${{ github.event.inputs.url-package }}"
- name: Step 02 - Download Project wazuh-app-environments
uses: actions/checkout@v4
with:
repository: matiasmoreno876/wazuh-app-environments
ref: 'master'
path: wazuh-app-environments
token: ${{ secrets.FE_SECRET_TOKEN }}
- name: Step 03 - Configuring templates docker environment
run: |
cd $GITHUB_WORKSPACE/wazuh-app-environments/
mkdir packages
cd ${{ env.PATH_TEMPLATE }}
sed -i -e 's|WAZUH_VERSION=.*|WAZUH_VERSION=${{ github.event.inputs.wazuh-version }}|g' ./.env
sed -i -e 's|ELASTIC_VERSION=.*|ELASTIC_VERSION=${{ github.event.inputs.elastic-version }}|g' ./.env
sed -i -e 's|UBUNTU_CYPRESS_VERSION=.*|UBUNTU_CYPRESS_VERSION=${{ github.event.inputs.ubuntu-cypress-version }}|g' ./.env
cat .env
- name: Step 04 - Starting containers
run: |
cd ${{ env.PATH_TEMPLATE }}
docker-compose up -d
echo CONTINUES AFTER 15 SECONDS ...
sleep 15s
- name: Step 05 - Installing package from url
run: |
cd ${{ env.PATH_TEMPLATE }}
docker exec $(docker-compose ps -q kibana) bin/kibana-plugin install ${{ github.event.inputs.url-package }}
docker-compose restart kibana
echo CONTINUES AFTER 60 SECONDS ...
sleep 60s
docker-compose ps
- name: Step 06 - Configuring ip container into wazuh.yml
run: |
cd ${{ env.PATH_TEMPLATE }}
docker exec $(docker-compose ps -q kibana) sed -i -e "s/url: https:\/\/localhost/url: https:\/\/wazuh-manager-master/g" /usr/share/kibana/data/wazuh/config/wazuh.yml
docker exec $(docker-compose ps -q kibana) cat /usr/share/kibana/data/wazuh/config/wazuh.yml
- name: Step 07 - Run Cypress tests
id: run-cypress-test
run: |
cd ${{ env.PATH_TEMPLATE }}
docker exec $(docker-compose ps -q cypress) bash -c " . /home/automation/nvm/nvm.sh && nvm use && npm run cypress:run-headless:github-actions:basic" | tee cypress.log
continue-on-error: true
- name: Step 08 - Run Cypress reports
run: |
cd ${{ env.PATH_TEMPLATE }}
docker exec $(docker-compose ps -q cypress) bash -c " . /home/automation/nvm/nvm.sh && nvm use && npm run cypress:report"
- name: Step 09 - Archive reports
uses: actions/upload-artifact@v4
with:
name: cypress-reports_BASIC_${{ github.event.inputs.wazuh-version }}-${{ github.event.inputs.elastic-version }}
path: ${{ env.PATH_TEMPLATE }}/report/*
overwrite: true
- name: Step 10 - Log parsing
run: |
cd ${{ env.PATH_TEMPLATE }}
echo "TEST_SKIPPED=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF)}')" >> $GITHUB_ENV
echo "TEST_PENDING=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF-1)}')" >> $GITHUB_ENV
echo "TEST_FAILING=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF-2)}')" >> $GITHUB_ENV
echo "TEST_PASSING=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF-3)}')" >> $GITHUB_ENV
echo "TEST_TOTAL=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF-4)}')" >> $GITHUB_ENV
echo "TEST_TIME=$(grep -E "failed \(|passed" cypress.log | awk ' { print $(NF-5)}')" >> $GITHUB_ENV
- name: Step 11 - Post to a Slack channel
id: slack
uses: slackapi/slack-github-action@v1.19.0
with:
# Slack channel id, channel name, or user id to post message.
# See also: https://api.slack.com/methods/chat.postMessage#channels
channel-id: ${{ secrets.SLACK_CHANNEL_ID }}
# For posting a simple plain text message
slack-message: "The following workflow was executed: ${{ github.workflow }}\nWazuh version: ${{ github.event.inputs.wazuh-version }}\nElastic version: ${{ github.event.inputs.elastic-version }}\nUbuntu Cypress version: ${{ github.event.inputs.ubuntu-cypress-version }}\nPackage used: ${{ github.event.inputs.url-package }}\n\nTest summary:\n\tTotal Test: ${{ env.TEST_TOTAL }}\n\tPassing: ${{ env.TEST_PASSING }}\n\tFailing: ${{ env.TEST_FAILING }}\n\tPending: ${{ env.TEST_PENDING }}\n\tSkipped: ${{ env.TEST_SKIPPED }}\n\tTotal Time: ${{ env.TEST_TIME }}\n\nFor more information visit: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
env:
SLACK_BOT_TOKEN: ${{ secrets.ACTIONS_SLACK_TOKEN }}
channel-id:
${{ secrets.SLACK_CHANNEL_ID }}
# For posting a simple plain text message
slack-message: "The following workflow was executed: ${{ github.workflow }}\nWazuh version: ${{ github.event.inputs.wazuh-version }}\nElastic version: ${{ github.event.inputs.elastic-version }}\nUbuntu Cypress version: ${{ github.event.inputs.ubuntu-cypress-version }}\nPackage used: ${{ github.event.inputs.url-package }}\n\nTest summary:\n\tTotal Test: ${{ env.TEST_TOTAL }}\n\tPassing: ${{ env.TEST_PASSING }}\n\tFailing: ${{ env.TEST_FAILING }}\n\tPending: ${{ env.TEST_PENDING }}\n\tSkipped: ${{ env.TEST_SKIPPED }}\n\tTotal Time: ${{ env.TEST_TIME }}\n\nFor more information visit: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
env:
SLACK_BOT_TOKEN: ${{ secrets.ACTIONS_SLACK_TOKEN }}
Loading

0 comments on commit 3186b3a

Please sign in to comment.