Skip to content

Commit

Permalink
Create codeql.yml (#2581)
Browse files Browse the repository at this point in the history
* Create codeql.yml

only check C++ code

* update workflows

* fix code-ql warnings

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
phlptp and pre-commit-ci[bot] authored Jan 2, 2024
1 parent bf0f4f6 commit 16602b7
Show file tree
Hide file tree
Showing 4 changed files with 101 additions and 5 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/code-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ jobs:
DISABLE_CXX_SHARED: 'true'

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: true
if: github.event_name != 'schedule'

- name: Checkout develop branch
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true
ref: develop
Expand Down
94 changes: 94 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
workflow_dispatch:
push:
branches: [ "main", "develop" ]
pull_request:
branches: [ "main", "develop" ]
schedule:
- cron: '23 6 * * 0'

jobs:
analyze:
name: Analyze
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners
# Consider using larger runners for possible analysis time improvements.
runs-on: ubuntu-latest
container: helics/buildenv:ubuntu22.04-default-builder
timeout-minutes: 60
defaults:
run:
shell: bash
env:
CMAKE_GENERATOR: Unix Makefiles
MAKEFLAGS: '-j 4'
DISABLE_INTERFACES: 'Java'
DISABLE_EXAMPLES: 'true'
DISABLE_CXX_SHARED: 'true'
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'c-cpp']
# CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ]
# Use only 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use only 'javascript-typescript' 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@v4

# tell git that the workspace directory is safe
- run: |
git config --global --add safe.directory ${GITHUB_WORKSPACE}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
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.

# For more 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


# ℹ️ 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.

- run: |
echo "Run, Build Application using script"
unset VCPKG_ROOT
source scripts/setup-helics-ci-options.sh
mkdir -p build && cd build
../scripts/ci-build.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
6 changes: 4 additions & 2 deletions src/helics/application_api/Subscriptions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,10 @@ class VectorSubscription2d {
static_assert(
std::is_base_of<ValueFederate, std::remove_reference_t<decltype(*valueFed)>>::value,
"Second argument must be a pointer to a ValueFederate");
ids.reserve(count_x * count_y);
vals.resize(count_x * count_y, defValue);
std::size_t arrayCount =
static_cast<std::size_t>(count_x) * static_cast<std::size_t>(count_y);
ids.reserve(arrayCount);
vals.resize(arrayCount, defValue);

for (auto ind_x = startIndex_x; ind_x < startIndex_x + count_x; ++ind_x) {
for (auto ind_y = startIndex_y; ind_y < startIndex_y + count_y; ++ind_y) {
Expand Down
2 changes: 1 addition & 1 deletion src/helics/application_api/ValueConverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ namespace detail {
// making use of array oriented access for complex numbers
// See https://en.cppreference.com/w/cpp/numeric/complex
checks::swapBytes<8>(reinterpret_cast<std::byte*>(&v));
checks::swapBytes<8>(reinterpret_cast<std::byte*>(&v) + sizeof(double));
checks::swapBytes<8>(reinterpret_cast<std::byte*>(&v) + 8);
}
}
}
Expand Down

0 comments on commit 16602b7

Please sign in to comment.