## 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
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:
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
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"
id: ccache_packages
shell: bash
run: |
- . /etc/os-release
- OS_ARCH=$(uname -m)
downloads_cache="/root/Downloads"
# Toggle envs (can be overridden from workflow)
# 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
--- /dev/null
+---
+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
--- /dev/null
+---
+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
---
-name: CSIT Tox
+name: csit-verify-tox
# yamllint disable-line rule:truthy
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
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