ci(gha): More flows 52/43752/2
authorPeter Mikus <[email protected]>
Thu, 25 Sep 2025 12:12:14 +0000 (14:12 +0200)
committerPeter Mikus <[email protected]>
Thu, 25 Sep 2025 19:52:03 +0000 (19:52 +0000)
Signed-off-by: Peter Mikus <[email protected]>
Change-Id: Ibd4b79ad825d7db207478dc57affa291ab697d38

.github/actions/setup_executor_env/README.md
.github/actions/setup_executor_env/action.yml
.github/workflows/gerrit-csit-perf-mrr-daily.yml [new file with mode: 0644]
.github/workflows/gerrit-csit-terraform-aws-eb-version.yml [new file with mode: 0644]
.github/workflows/gerrit-csit-tox-verify.yml

index 77da6bc..0b7c645 100644 (file)
@@ -6,17 +6,24 @@ Action to setup FD.io Nomad executor environment inside a GitHub action/workflow
 
 ## Usage Example
 
+Sets the OS details used for Git operations inside other actions/workflows.
+
 ```yaml
 - name: "Setup Environment"
   uses: fdio/csit/.github/actions/setup_executor_env@master
 ```
 
-<!-- markdownlint-enable MD013 -->
-
 ## Outputs
 
-The action has no outputs, but does provide summary step information when
-invoked.
+<!-- markdownlint-disable MD013 -->
+
+| Variable Name   | Description                     |
+| --------------- | ------------------------------- |
+| OS_ID           | Operating system ID.            |
+| OS_VERSION_ID   | Operating system Version ID.    |
+| OS_ARCH         | Operating system architecture.  |
+
+<!-- markdownlint-enable MD013 -->
 
 ## Requirements/Dependencies
 
index 7b8d526..439ff66 100644 (file)
@@ -3,6 +3,17 @@ name: "🛠️ Setup Executor Environment"
 description: |
   This GitHub Action prepares FD.io executor environment.
 
+outputs:
+  OS_ID:
+    description: "Operating system ID"
+    value: ${{ steps.attributes.outputs.OS_ID }}
+  OS_VERSION_ID:
+    description: "Operating system Version ID"
+    value: ${{ steps.attributes.outputs.OS_VERSION_ID }}
+  OS_ARCH:
+    description: "Operating system architecture"
+    value: ${{ steps.attributes.outputs.OS_ARCH }}
+
 runs:
   using: "composite"
   steps:
@@ -20,6 +31,14 @@ runs:
         echo "GitHub Run ID: ${GITHUB_RUN_ID:-Unknown}"
         echo "Runner Hostname: $(hostname)"
 
+        # Set GitHub Outputs
+        echo "OS_ID=$ID" >> "$GITHUB_ENV"
+        echo "OS_ID=$ID" >> "$GITHUB_OUTPUT"
+        echo "OS_VERSION_ID=$VERSION_ID" >> "$GITHUB_ENV"
+        echo "OS_VERSION_ID=$VERSION_ID" >> "$GITHUB_OUTPUT"
+        echo "OS_ARCH=$OS_ARCH" >> "$GITHUB_ENV"
+        echo "OS_ARCH=$OS_ARCH" >> "$GITHUB_OUTPUT"
+
     - name: "GitHub Actions Environment"
       id: environment
       shell: bash
@@ -40,11 +59,9 @@ runs:
       id: os_packages
       shell: bash
       run: |
-        . /etc/os-release
-
-        if [ "${ID}" = "ubuntu" ] || [ "${ID}" = "debian" ]; then
+        if [ "${OS_ID}" = "ubuntu" ] || [ "${OS_ID}" = "debian" ]; then
           dpkg-query -W -f='${binary:Package}\t${Version}\n' | column -t || true
-        elif [ "${ID}" = "centos" ]; then
+        elif [ "${OS_ID}" = "centos" ]; then
           yum list installed || true
         else
           echo "Unsupported OS for package listing"
@@ -54,8 +71,6 @@ runs:
       id: ccache_packages
       shell: bash
       run: |
-        . /etc/os-release
-        OS_ARCH=$(uname -m)
         downloads_cache="/root/Downloads"
 
         # Toggle envs (can be overridden from workflow)
@@ -68,7 +83,7 @@ runs:
           # Ensure CCACHE_DIR is set and exists
           if [ -z "${CCACHE_DIR:-}" ]; then
             # Derive a default if not provided (caller may pass one via env)
-            CCACHE_DIR="/scratch/ccache/${ID}-${VERSION_ID}-${OS_ARCH}"
+            CCACHE_DIR="/scratch/ccache/${OS_ID}-${OS_VERSION_ID}-${OS_ARCH}"
             export CCACHE_DIR
           fi
           if [ ! -d "${CCACHE_DIR}" ]; then
diff --git a/.github/workflows/gerrit-csit-perf-mrr-daily.yml b/.github/workflows/gerrit-csit-perf-mrr-daily.yml
new file mode 100644 (file)
index 0000000..345b346
--- /dev/null
@@ -0,0 +1,96 @@
+---
+name: csit-vpp-perf-mrr-daily
+
+# yamllint disable-line rule:truthy
+on:
+  # Runs periodically
+  #schedule:
+  #  - cron:  "30 22 * * 0-4"
+  workflow_dispatch:
+
+jobs:
+  csit-vpp-perf-mrr-daily:
+    name: csit-vpp-perf-mrr-daily-master-${{ matrix.node }}
+    runs-on:
+      - self-hosted
+      - nomad
+      - fdio:arch=${{ matrix.executor_arch }}
+      - fdio:class=builder
+      - fdio:namespace=sandbox
+      - fdio:os=${{ matrix.os }}
+
+    strategy:
+      matrix:
+        include:
+          - node: 2n-grc
+            os: ubuntu2404
+            executor_arch: aarch64
+          - node: 2n-icx
+            os: ubuntu2404
+            executor_arch: x86_64
+          - node: 2n-spr
+            os: ubuntu2404
+            executor_arch: x86_64
+          - node: 2n-zn2
+            os: ubuntu2404
+            executor_arch: x86_64
+          - node: 3n-icx
+            os: ubuntu2404
+            executor_arch: x86_64
+          - node: 3n-alt
+            os: ubuntu2404
+            executor_arch: aarch64
+          - node: 3n-snr
+            os: ubuntu2404
+            executor_arch: x86_64
+          - node: 3n-icxd
+            os: ubuntu2404
+            executor_arch: x86_64
+          - node: 3na-spr
+            os: ubuntu2404
+            executor_arch: x86_64
+          - node: 3nb-spr
+            os: ubuntu2404
+            executor_arch: x86_64
+          - node: 2n-emr
+            os: ubuntu2404
+            executor_arch: x86_64
+          - node: 3n-emr
+            os: ubuntu2404
+            executor_arch: x86_64
+          - node: 3n-oct
+            os: ubuntu2404
+            executor_arch: aarch64
+
+    env:
+      JOB_NAME: "${{ github.job }}-master-${{ matrix.node }}"
+
+    steps:
+      - name: Gerrit Checkout
+        # yamllint disable-line rule:line-length
+        uses: lfit/checkout-gerrit-change-action@54d751e8bd167bc91f7d665dabe33fae87aaaa63 # v0.9
+        with:
+          gerrit-refspec: refs/heads/master
+          gerrit-project: "csit"
+          gerrit-url: ${{ vars.GERRIT_URL }}
+          delay: "0s"
+          ref: refs/heads/master
+
+      - name: "Retrieve GIT commit message"
+        uses: lfit/releng-reusable-workflows/.github/actions/git-commit-message-action@main
+
+      - name: Setup Environment
+        uses: pmikus/csit/.github/actions/setup_executor_env@master
+
+      - name: Run Performance Bootstrap
+        run: |
+          csit_entry_dir="./resources/libraries/bash/entry"
+          #source ${csit_entry_dir}/with_oper_for_vpp.sh "bootstrap_verify_perf.sh"
+
+      - name: Archive Logs
+        if: always()
+        uses: actions/upload-artifact@v4
+        with:
+          name: ${{ env.JOB_NAME }}-${{ github.run_number }}
+          path: archives/
+          if-no-files-found: "ignore"
\ No newline at end of file
diff --git a/.github/workflows/gerrit-csit-terraform-aws-eb-version.yml b/.github/workflows/gerrit-csit-terraform-aws-eb-version.yml
new file mode 100644 (file)
index 0000000..b09634c
--- /dev/null
@@ -0,0 +1,140 @@
+---
+name: csit-terraform-aws-eb-version
+
+# yamllint disable-line rule:truthy
+on:
+  workflow_dispatch:
+    inputs:
+      GERRIT_BRANCH:
+        description: "Branch that change is against"
+        required: true
+        type: string
+      GERRIT_CHANGE_ID:
+        description: "The ID for the change"
+        required: true
+        type: string
+      GERRIT_CHANGE_NUMBER:
+        description: "The Gerrit number"
+        required: true
+        type: string
+      GERRIT_CHANGE_URL:
+        description: "URL to the change"
+        required: true
+        type: string
+      GERRIT_EVENT_TYPE:
+        description: "Type of Gerrit event"
+        required: true
+        type: string
+      GERRIT_PATCHSET_NUMBER:
+        description: "The patch number for the change"
+        required: true
+        type: string
+      GERRIT_PATCHSET_REVISION:
+        description: "The revision sha"
+        required: true
+        type: string
+      GERRIT_PROJECT:
+        description: "Project in Gerrit"
+        required: true
+        type: string
+      GERRIT_REFSPEC:
+        description: "Gerrit refspec of change"
+        required: true
+        type: string
+
+concurrency:
+  # yamllint disable-line rule:line-length
+  group: verify-${{ github.workflow }}-${{ github.event.inputs.GERRIT_BRANCH }}-${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }}
+  cancel-in-progress: true
+
+jobs:
+  verify:
+    runs-on:
+      - self-hosted
+      - nomad
+      - fdio:arch=${{ matrix.executor_arch }}
+      - fdio:class=builder
+      - fdio:namespace=sandbox
+      - fdio:os=${{ matrix.os }}
+
+    strategy:
+      matrix:
+        os: [ubuntu2404]
+        executor_arch: [x86_64]
+
+    env:
+      JOB_NAME: "csit-terraform-aws-eb-version-verify"
+      BUILD_ID: "${{ github.run_number }}"
+
+    steps:
+      - name: Gerrit Checkout
+        # yamllint disable-line rule:line-length
+        uses: lfit/checkout-gerrit-change-action@54d751e8bd167bc91f7d665dabe33fae87aaaa63 # v0.9
+        with:
+          gerrit-refspec: ${{ github.event.inputs.GERRIT_REFSPEC }}
+          gerrit-project: ${{ github.event.inputs.GERRIT_PROJECT }}
+          gerrit-url: ${{ vars.GERRIT_URL }}
+          delay: "30s"
+          ref: refs/heads/${{ github.event.inputs.GERRIT_BRANCH }}
+
+      - name: "Retrieve GIT commit message"
+        # yamllint disable-line rule:line-length
+        uses: lfit/releng-reusable-workflows/.github/actions/git-commit-message-action@main
+
+      - name: Setup Environment
+        uses: pmikus/csit/.github/actions/setup_executor_env@master
+
+      - name: Run Terraform Bootstrap
+        run: |
+          csit_entry_dir="./resources/libraries/bash/entry"
+          source ${csit_entry_dir}/bootstrap_aws_eb_version_verify.sh
+
+  deploy:
+    needs: verify
+    runs-on:
+      - self-hosted
+      - nomad
+      - fdio:arch=${{ matrix.executor_arch }}
+      - fdio:class=builder
+      - fdio:namespace=sandbox
+      - fdio:os=${{ matrix.os }}
+
+    strategy:
+      matrix:
+        os: [ubuntu2404]
+        executor_arch: [x86_64]
+
+    env:
+      JOB_NAME: "csit-terraform-aws-eb-version-deploy"
+      BUILD_ID: "${{ github.run_number }}"
+
+    steps:
+      - name: Gerrit Checkout
+        # yamllint disable-line rule:line-length
+        uses: lfit/checkout-gerrit-change-action@54d751e8bd167bc91f7d665dabe33fae87aaaa63 # v0.9
+        with:
+          gerrit-refspec: ${{ github.event.inputs.GERRIT_REFSPEC }}
+          gerrit-project: ${{ github.event.inputs.GERRIT_PROJECT }}
+          gerrit-url: ${{ vars.GERRIT_URL }}
+          delay: "30s"
+          ref: refs/heads/${{ github.event.inputs.GERRIT_BRANCH }}
+
+      - name: "Retrieve GIT commit message"
+        # yamllint disable-line rule:line-length
+        uses: lfit/releng-reusable-workflows/.github/actions/git-commit-message-action@main
+
+      - name: Setup Environment
+        uses: pmikus/csit/.github/actions/setup_executor_env@master
+
+      - name: Run Terraform Bootstrap
+        run: |
+          csit_entry_dir="./resources/libraries/bash/entry"
+          source ${csit_entry_dir}/bootstrap_aws_eb_version_deploy.sh
+
+      - name: Archive Logs
+        if: always()
+        uses: actions/upload-artifact@v4
+        with:
+          name: ${{ env.JOB_NAME }}-${{ github.run_number }}
+          path: archives/
+          if-no-files-found: "ignore"
\ No newline at end of file
index b89deaf..c51e241 100644 (file)
@@ -1,5 +1,5 @@
 ---
-name: CSIT Tox
+name: csit-verify-tox
 
 # yamllint disable-line rule:truthy
 on:
@@ -41,52 +41,50 @@ on:
         description: "Gerrit refspec of change"
         required: true
         type: string
-      TARGET_REPO:
-        # yamllint disable-line rule:line-length
-        description: "The target GitHub repository needing the required workflow"
-        required: true
-        type: string
 
 concurrency:
   # yamllint disable-line rule:line-length
-  group: required-verify-${{ github.workflow }}-${{ github.event.inputs.GERRIT_BRANCH }}-${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }}
+  group: csit-verify-tox-${{ github.workflow }}-${{ github.event.inputs.GERRIT_BRANCH }}-${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }}
   cancel-in-progress: true
 
 jobs:
   csit-verify-tox:
-    name: csit-verify-tox-${{ matrix.os }}-${{ matrix.executor_arch }}
+    name: "csit-verify-tox"
     runs-on:
       - self-hosted
       - nomad
       - fdio:arch=${{ matrix.executor_arch }}
       - fdio:class=builder
-      - fdio:namespace=${{ matrix.builder_type }}
+      - fdio:namespace=sandbox
       - fdio:os=${{ matrix.os }}
 
     strategy:
       matrix:
         os: [ubuntu2404]
         executor_arch: [x86_64]
-        builder_type: [prod]
 
     env:
-      JOB_NAME: "${{ github.job }}-${{ matrix.os }}-${{ matrix.executor_arch }}"
+      JOB_NAME: "${{ github.job }}"
 
     steps:
       - name: Gerrit Checkout
         # yamllint disable-line rule:line-length
         uses: lfit/checkout-gerrit-change-action@54d751e8bd167bc91f7d665dabe33fae87aaaa63 # v0.9
         with:
-          gerrit-refspec: ${{ github.event.inputs.GERRIT_REFSPEC }}
-          gerrit-project: ${{ github.event.inputs.GERRIT_PROJECT }}
+          gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
+          gerrit-project: ${{ inputs.GERRIT_PROJECT }}
           gerrit-url: ${{ vars.GERRIT_URL }}
           delay: "30s"
-          ref: refs/heads/${{ github.event.inputs.GERRIT_BRANCH }}
+          ref: refs/heads/${{ inputs.GERRIT_BRANCH }}
+
+      - name: "Retrieve GIT commit message"
+        # yamllint disable-line rule:line-length
+        uses: lfit/releng-reusable-workflows/.github/actions/git-commit-message-action@main
 
       - name: Setup Environment
-        uses: fdio/csit/.github/actions/setup_executor_env@master
+        uses: pmikus/csit/.github/actions/setup_executor_env@master
 
-      - name: Run tox
+      - name: Run Tox
         run: |
           source ./resources/libraries/bash/entry/tox.sh
 
@@ -94,6 +92,6 @@ jobs:
         if: always()
         uses: actions/upload-artifact@v4
         with:
-          name: ${{ github.job }}-${{ matrix.os }}-${{ matrix.executor_arch }}-logs
+          name: ${{ env.JOB_NAME }}-${{ github.run_number }}
           path: archives/
           if-no-files-found: "ignore"
\ No newline at end of file