Skip to content

Commit

Permalink
Improve ci pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
mrognor committed Jan 10, 2025
1 parent 205337a commit a758c42
Show file tree
Hide file tree
Showing 4 changed files with 121 additions and 32 deletions.
39 changes: 39 additions & 0 deletions .github/workflows/sast.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Simple workflow for running static code analysis on GitHub Pages
name: Run static code analysis

on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

jobs:
# Single sast job
sast:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install packages
run: sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install clang clang-tidy cppcheck

- name: Install CodeChecker
run: sudo pipx install CodeChecker --force

- name: Run sast
run: ./Scripts/RunSast.sh

# Upload sast artifacts
- uses: actions/upload-artifact@v4
with:
name: SastArtifacts
path: ./Sast
30 changes: 3 additions & 27 deletions .github/workflows/static.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages
# Simple workflow for deploying generated documentation to GitHub Pages
name: Deploy documentation to Pages

on:
# Runs on pushes targeting the default branch
Expand Down Expand Up @@ -35,35 +35,11 @@ jobs:
uses: actions/configure-pages@v5

- name: Install packages
run: sudo apt-get update && sudo apt-get upgrade && sudo DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install doxygen graphviz lcov cmake pipx clang clang-tidy cppcheck python3
run: sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install doxygen graphviz

- name: Install CodeChecker
run: sudo pipx install CodeChecker --force

- name: Create documentation
run: ./Docs/Gendoc.sh

- name: Run tests
run: ./Scripts/RunTests.sh

- name: Test coverage
run: ./Scripts/TestCoverage.sh

- name: Move coverage artifact
run: mv ./Coverage ./Docs/Generated/html

- name: Run sast
run: ./Scripts/RunSast.sh

- name: Move sast artifacts
run: |
mv ./Sast/html_clang_tidy ./Docs/Generated/html
mv ./Sast/html_clangsa ./Docs/Generated/html
mv ./Sast/html_cppcheck ./Docs/Generated/html
- name: Send report to telegram
run: ./.github/TelegramReport/SendCiReportToTelegram.sh ${{ secrets.BOT_ID }} ${{ secrets.CHAT_ID }} ${{ secrets.TOPIC_ID }}

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
Expand Down
79 changes: 79 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Simple workflow for run tests on GitHub Actions
name: Run tests

on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

jobs:
# Run project tests
tests:
name: Build and run tests
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install packages
run: sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install cmake lcov

- name: Build and run tests
run: ./Scripts/RunTests.sh

# Upload artifacts to reuse it in next jobs
- uses: actions/upload-artifact@v4
with:
name: TestArtifacts
path: ./Build

# Send report with tests result to telegram
telegram:
name: Send report to telegram
needs: tests
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- uses: actions/download-artifact@v4
with:
name: TestArtifacts
path: ./Build

- name: Send report to telegram
run: ./.github/TelegramReport/SendCiReportToTelegram.sh ${{ secrets.BOT_ID }} ${{ secrets.CHAT_ID }} ${{ secrets.TOPIC_ID }}

# Run tests coverage
coverage:
name: Run tests coverage
needs: tests
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install packages
run: sudo apt-get update && sudo apt-get upgrade && sudo apt-get -y install lcov

- uses: actions/download-artifact@v4
with:
name: TestArtifacts
path: ./Build

- name: Run test coverage
run: ./Scripts/TestCoverage.sh

# Upload coverage artifacts
- uses: actions/upload-artifact@v4
with:
name: CoverageArtifacts
path: ./Coverage
5 changes: 0 additions & 5 deletions ReadMe.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
Full documentation available [here](https://mrognor.github.io/MVault/index.html)
Test coverage available [here](https://mrognor.github.io/MVault/Coverage/CodeCoverage.html)
Sast clang_tidy available [here](https://mrognor.github.io/MVault/html_clang_tidy/index.html#sort=file-path&asc=1)
Sast clangsa available [here](https://mrognor.github.io/MVault/html_clangsa/index.html#sort=file-path&asc=1)
Sast cppcheck available [here](https://mrognor.github.io/MVault/html_cppcheck/index.html#sort=file-path&asc=1)


# Configure project
Cmake is used to configure the project. It is called via the **Configure** script.
Expand Down

0 comments on commit a758c42

Please sign in to comment.