From ff785b6c1c3485ff95dc5d6cbad2add5a568e714 Mon Sep 17 00:00:00 2001 From: Tiernan8r Date: Wed, 21 Dec 2022 14:26:14 +0000 Subject: [PATCH] Add sonarcloud code scanning: (#50) Add sonarcloud code scanning to the repo. --- .github/workflows/sonarcloud.yml | 80 ++++++++++++++++++++++++++++++++ README.md | 8 ++-- 2 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/sonarcloud.yml diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml new file mode 100644 index 0000000..4a8f075 --- /dev/null +++ b/.github/workflows/sonarcloud.yml @@ -0,0 +1,80 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# This workflow helps you trigger a SonarCloud analysis of your code and populates +# GitHub Code Scanning alerts with the vulnerabilities found. +# Free for open source project. + +# 1. Login to SonarCloud.io using your GitHub account + +# 2. Import your project on SonarCloud +# * Add your GitHub organization first, then add your repository as a new project. +# * Please note that many languages are eligible for automatic analysis, +# which means that the analysis will start automatically without the need to set up GitHub Actions. +# * This behavior can be changed in Administration > Analysis Method. +# +# 3. Follow the SonarCloud in-product tutorial +# * a. Copy/paste the Project Key and the Organization Key into the args parameter below +# (You'll find this information in SonarCloud. Click on "Information" at the bottom left) +# +# * b. Generate a new token and add it to your Github repository's secrets using the name SONAR_TOKEN +# (On SonarCloud, click on your avatar on top-right > My account > Security +# or go directly to https://sonarcloud.io/account/security/) + +# Feel free to take a look at our documentation (https://docs.sonarcloud.io/getting-started/github/) +# or reach out to our community forum if you need some help (https://community.sonarsource.com/c/help/sc/9) + +name: SonarCloud analysis + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + workflow_dispatch: + +permissions: + pull-requests: read # allows SonarCloud to decorate PRs with analysis results + +jobs: + Analysis: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python }} + - name: Install tox and any other packages + run: pip install tox + - name: Run tox tests to get coverage information + run: tox -e tests + + - name: Analyze with SonarCloud + + # You can pin the exact commit or the version. + # uses: SonarSource/sonarcloud-github-action@de2e56b42aa84d0b1c5b622644ac17e505c9a049 + uses: SonarSource/sonarcloud-github-action@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # Generate a token on Sonarcloud.io, add it to the secrets of this repo with the name SONAR_TOKEN (Settings > Secrets > Actions > add new repository secret) + with: + # Additional arguments for the sonarcloud scanner + args: + # Unique keys of your project and organization. You can find them in SonarCloud > Information (bottom-left menu) + # mandatory + -Dsonar.projectKey=Tiernan8r_variational_principle_gui + -Dsonar.organization=tiernan8r + # Comma-separated paths to directories containing main source files. + #-Dsonar.sources= # optional, default is project base directory + # When you need the analysis to take place in a directory other than the one from which it was launched + #-Dsonar.projectBaseDir= # optional, default is . + # Comma-separated paths to directories containing test source files. + #-Dsonar.tests= # optional. For more info about Code Coverage, please refer to https://docs.sonarcloud.io/enriching/test-coverage/overview/ + # Adds more detail to both client and server-side analysis logs, activating DEBUG mode for the scanner, and adding client-side environment variables and system properties to the server-side log of analysis report processing. + #-Dsonar.verbose= # optional, default is false \ No newline at end of file diff --git a/README.md b/README.md index b672329..8afe025 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ -# The Variational Principle in Quantum Mechanics: ---- +The Variational Principle in Quantum Mechanics: +=== +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Tiernan8r_variational_principle&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Tiernan8r_variational_principle) + The Variational Principle in Quantum Mechanics states that: ![equation](https://latex.codecogs.com/svg.latex?<\psi&space;|&space;\hat{H}&space;|&space;\psi>&space;=&space;E&space;=&space;\frac{\int_{-\infty}^{\infty}\psi^*&space;\hat{H}&space;\psi&space;d\bar{r}}{\int_{-\infty}^{\infty}\psi^*&space;\psi&space;d\bar{r}}&space;\ge&space;E_0) @@ -77,4 +79,4 @@ Will compile an executable binary at `dist/variational_principle`. Run the binary as usual with ```console $ ./dist/variational_principle [...input] -``` \ No newline at end of file +```