Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 15 additions & 13 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ As of now, the GitHub CI is designed to run in three instances:
2. A change to the Counter Analysis Toolkit i.e. in the `src/counter_analysis_toolkit` directory and any subdirectories.
3. A change in the PAPI framework i.e. in the `src/` directory or `src/` subdirectories (excluding individual components and the Counter Analysis Toolkit). If this occurs then we will run a full test suite.

The scripts that are being utilitzed within the GitHub CI jobs are all placed within `.github/workflows_scripts/`. This is to aid
in keeping the PAPI CI organized.

# Individual Component Basis
All individual component basis tests have a `.yml` that is structured with `componentName_component_workflow.yml`. As
Expand Down Expand Up @@ -33,45 +35,45 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: cuda component tests # replace cuda with your component name
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
````

For each component `.yml`, there will be a single job with the options of:
- `component`, this is the component we want to configure PAPI with (e.g. cuda)
- `debug`, with the options of either `yes` (builds a debug version) or `no` (does not build a debug version)
- `shlib`, with `--with-shlib-tools` or without `--with-shlib-tools`

These options will be used in the script `ci_individual_component.sh` to test configuring and building PAPI.
These options will be used in the script `workflows_scripts/ci_individual_component.sh` to test configuring and building PAPI.

Besides configuring and building PAPI, `ci_individual_component.sh` will:
Besides configuring and building PAPI, `workflows_scripts/ci_individual_component.sh` will:
- Check to make sure components are active that we expect
- Run a test suite using either `run_tests.sh` (without `--with-shlib-tools`) or `run_tests_shlib.sh` (with `--with-shlib-tools`)

**NOTE**: The components `perf_event`, `perf_event_uncore`, and `sysdetect` do not follow the above outlined file structure.
For these three components the files used are `default_components_workflow.yml` and `ci_default_components.sh`. Even though
the file structure is different the workflow will still only run if a change is made to one of their directories or subdirectories.
For these three components the files used are `default_components_workflow.yml` and `workflows_scripts/ci_default_components.sh`.
Even though the file structure is different the workflow will still only run if a change is made to one of their directories or subdirectories.
The reason for this is that these three components are compiled in by default and trying to pass one of them to `--with-components=`
will result in an error during the build process. Therefore, any PAPI CI updates for one of these three components would need to be
addressed in either of the two aforementioned files.

# Counter Analysis Toolkit
The Counter Analysis Toolkit (CAT) CI uses the `cat_workflow.yml` and `ci_cat.sh` files. Any updates to the CI for CAT need to be done in these two files.
The Counter Analysis Toolkit (CAT) CI uses the `cat_workflow.yml` and `workflows_scripts/ci_cat.sh` files. Any updates to the CI for CAT need to be done in these two files.

The `cat_workflow.yml` will have a single job with the options of:
- `debug`, with the options of either `yes` (builds a debug version) or `no` (does not build a debug version)
- `shlib`, with `--with-shlib-tools` or without `--with-shlib-tools`

These options will be used in the script `ci_cat.sh` to test configuring and building PAPI.
These options will be used in the script `workflows_scripts/ci_cat.sh` to test configuring and building PAPI.

Besides configuring and building PAPI `ci_cat.sh` will:
Besides configuring and building PAPI `workflows_scripts/ci_cat.sh` will:
- Test building CAT
- Check to see if CAT successfully detects the architecture we are on
- Run CAT with a real event and a dummy event
- For the real event, we expect the file to exist and values to be present
- For the dummy event, we expect the file to exist, but values to not be present

# PAPI Framework
The PAPI framework CI uses the `papi_framework_workflow.yml` along with the scripts `clang_analysis.sh`, `ci_papi_framework.sh`, and `spack.sh`. Any updates to the CI for the PAPI framework need to be done in these files.
The PAPI framework CI uses the `papi_framework_workflow.yml` along with the scripts `workflows_scripts/clang_analysis.sh`, `workflows_scripts/ci_papi_framework.sh`, and `workflows_scripts/spack.sh`. Any updates to the CI for the PAPI framework need to be done in these files.

`papi_framework_workflow.yml` will have a total of five jobs:
1. papi_components_comprehensive
Expand All @@ -93,13 +95,13 @@ The PAPI framework CI uses the `papi_framework_workflow.yml` along with the scri
- `shlib`, with `--with-shlib-tools` or without `--with-shlib-tools`

4. papi_spack
- The script `spack.sh` will be ran, which configures and builds PAPI from SPACK
- The script `workflows_scripts/spack.sh` will be ran, which configures and builds PAPI from SPACK

5. papi_clang_analysis
- The script `clang_analysis.sh` will be ran, which configures and builds PAPI with clang
- The script `workflows_scripts/clang_analysis.sh` will be ran which configures and builds PAPI with clang

For jobs 1, 2, and 3, the options listed will be used in the script `ci_papi_framework.sh` to test configuring and building PAPI.
For jobs 1, 2, and 3, the options listed will be used in the script `workflows_scripts/ci_papi_framework.sh` to test configuring and building PAPI.

Besides configuring and building PAPI, `ci_papi_framework.sh` will:
Besides configuring and building PAPI, `workflows_scripts/ci_papi_framework.sh` will:
- Check to make sure components are active that we expect
- Run a test suite using either `run_tests.sh` (without `--with-shlib-tools`) or `run_tests_shlib.sh` (with `--with-shlib-tools`)
2 changes: 1 addition & 1 deletion .github/workflows/appio_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: appio component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/cat_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: counter analysis toolkit tests
run: .github/workflows/ci_cat.sh ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_cat.sh ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/coretemp_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: coretemp component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/cuda_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: cuda component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/default_components_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: default components tests
run: .github/workflows/ci_default_components.sh ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_default_components.sh ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/example_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: example component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/intel_gpu_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: intel_gpu component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/io_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: io component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/lmsensors_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: lmsensors component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/net_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: net component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/nvml_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: nvml component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
10 changes: 5 additions & 5 deletions .github/workflows/papi_framework_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: comprehensive component tests
run: .github/workflows/ci_papi_framework.sh "${{matrix.components}}" ${{matrix.debug}} ${{matrix.shlib}} ${{matrix.hardware}}
run: .github/workflows_scripts/ci_papi_framework.sh "${{matrix.components}}" ${{matrix.debug}} ${{matrix.shlib}} ${{matrix.hardware}}
# build PAPI only with rocm and rocm_smi components, as they will not be active in the above comprehensive job
papi_components_amd:
strategy:
Expand All @@ -40,7 +40,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: rocp_sdk and rocm_smi component tests
run: .github/workflows/ci_papi_framework.sh "${{matrix.components}}" ${{matrix.debug}} ${{matrix.shlib}} ${{matrix.hardware}}
run: .github/workflows_scripts/ci_papi_framework.sh "${{matrix.components}}" ${{matrix.debug}} ${{matrix.shlib}} ${{matrix.hardware}}
# build PAPI only with the infiniband component, as it will not always be active in the above comrehensive job
papi_component_infiniband:
strategy:
Expand All @@ -55,20 +55,20 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: infiniband component tests
run: .github/workflows/ci_papi_framework.sh ${{matrix.components}} ${{matrix.debug}} ${{matrix.shlib}} ${{matrix.hardware}}
run: .github/workflows_scripts/ci_papi_framework.sh ${{matrix.components}} ${{matrix.debug}} ${{matrix.shlib}} ${{matrix.hardware}}
papi_spack:
runs-on: cpu
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- name: Build/Test/Install via Spack
run: .github/workflows/spack.sh
run: .github/workflows_scripts/spack.sh
papi_clang_analysis:
runs-on: cpu
steps:
- uses: actions/checkout@v4
- name: Run static analysis
run: .github/workflows/clang_analysis.sh clang-analysis-output
run: .github/workflows_scripts/clang_analysis.sh clang-analysis-output
- name: Archive analysis results
uses: actions/upload-artifact@v4
if: always()
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/powercap_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: powercap component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/rocm_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: rocm component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/rocm_smi_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: rocm_smi component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/rocp_sdk_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: rocp_sdk component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/sde_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: sde component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
2 changes: 1 addition & 1 deletion .github/workflows/stealtime_component_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: stealtime component tests
run: .github/workflows/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
run: .github/workflows_scripts/ci_individual_component.sh ${{matrix.component}} ${{matrix.debug}} ${{matrix.shlib}}
File renamed without changes.
File renamed without changes.