diff --git a/.github/workflows/codeql-build.yml b/.github/workflows/codeql-build.yml index d0aa629..a761f7b 100644 --- a/.github/workflows/codeql-build.yml +++ b/.github/workflows/codeql-build.yml @@ -2,9 +2,9 @@ name: "CodeQL Analysis" on: push: + pull_request: branches: - main - pull_request: env: SIMULATION: native @@ -13,8 +13,23 @@ env: BUILDTYPE: release jobs: + #Checks for duplicate actions. Skips push actions if there is a matching or duplicate pull-request action. + check-for-duplicates: + runs-on: ubuntu-latest + # Map a step output to a job output + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@master + with: + concurrent_skipping: 'same_content' + skip_after_successful_duplicate: 'true' + do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]' - CodeQL-Build: + CodeQL-Security-Build: + needs: check-for-duplicates + if: ${{ needs.check-for-duplicates.outputs.should_skip != 'true' }} runs-on: ubuntu-18.04 timeout-minutes: 15 @@ -38,7 +53,7 @@ jobs: uses: github/codeql-action/init@v1 with: languages: c - queries: +security-extended, security-and-quality + config-file: nasa/cFS/.github/codeql/codeql-security.yml@main # Setup the build system - name: Set up for build @@ -53,3 +68,45 @@ jobs: - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 + + CodeQL-Coding-Standard-Build: + needs: check-for-duplicates + if: ${{ needs.check-for-duplicates.outputs.should_skip != 'true' }} + runs-on: ubuntu-18.04 + timeout-minutes: 15 + + steps: + # Checks out a copy of your repository on the ubuntu-latest machine + - name: Checkout bundle + uses: actions/checkout@v2 + with: + repository: nasa/cFS + submodules: true + + - name: Checkout submodule + uses: actions/checkout@v2 + with: + path: tools/tblCRCTool + + - name: Check versions + run: git submodule + + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: c + config-file: nasa/cFS/.github/codeql/codeql-coding-standard.yml@main + + # Setup the build system + - name: Set up for build + run: | + cp ./cfe/cmake/Makefile.sample Makefile + cp -r ./cfe/cmake/sample_defs sample_defs + make prep + + # Build the code + - name: Build + run: make tools/tblCRCTool/ + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 \ No newline at end of file diff --git a/README.md b/README.md index 918dc98..a09a1af 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,18 @@ This lab application is a ground utility to generate binary table CRCs for cFS. ## Version Notes +### Development Build: 1.2.0-rc1+dev33 + +- Add printf conversion casts to fix Raspberry-Pi4 compilation error + - Cast ssize_t to long and uint32 to unsigned long for printf. + - This matches the %d and %lX conversions, respectively. +- Implement Coding Standard in CodeQL +- See and + ### Development Build: 1.2.0-rc1+dev25 -- Fix #43, Add Testing Tools to the Security Policy -- Fix #36 #38 #40 #41, Check lseek return and exit/error processing updates +- Add Testing Tools to the Security Policy +- Check lseek return and exit/error processing updates - See ### Development Build: 1.2.0-rc1+dev19 diff --git a/cfe_ts_crc.c b/cfe_ts_crc.c index 0e9695a..6b9ac70 100644 --- a/cfe_ts_crc.c +++ b/cfe_ts_crc.c @@ -154,8 +154,8 @@ int main(int argc, char **argv) /* print the size/CRC results */ printf("\nTable File Name: %s\nTable Size: %ld Bytes\nExpected TS Validation CRC: " - "0x%08X\n\n", - argv[1], fileSize, fileCRC); + "0x%08lX\n\n", + argv[1], (long)fileSize, (unsigned long)fileCRC); /* Close file and check*/ if (close(fd) != 0) diff --git a/cfe_ts_crc_version.h b/cfe_ts_crc_version.h index 18fe73f..1ebb840 100644 --- a/cfe_ts_crc_version.h +++ b/cfe_ts_crc_version.h @@ -31,7 +31,7 @@ /* * Development Build Macro Definitions */ -#define CFE_TS_CRC_BUILD_NUMBER 25 /*!< @brief Number of commits since baseline */ +#define CFE_TS_CRC_BUILD_NUMBER 33 /*!< @brief Number of commits since baseline */ #define CFE_TS_CRC_BUILD_BASELINE \ "v1.2.0+dev" /*!< @brief Development Build: git tag that is the base for the current */