diff options
Diffstat (limited to 'Client/ThirdParty/imgui/.github/workflows/static-analysis.yml')
-rw-r--r-- | Client/ThirdParty/imgui/.github/workflows/static-analysis.yml | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Client/ThirdParty/imgui/.github/workflows/static-analysis.yml b/Client/ThirdParty/imgui/.github/workflows/static-analysis.yml new file mode 100644 index 0000000..f3e6b2d --- /dev/null +++ b/Client/ThirdParty/imgui/.github/workflows/static-analysis.yml @@ -0,0 +1,77 @@ +name: static-analysis + +on: + workflow_run: + # Perform static analysis together with build workflow. Build triggers of "build" workflow do not need to be repeated here. + workflows: + - build + types: + - requested + +jobs: + PVS-Studio: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v1 + with: + fetch-depth: 1 + + - name: Install Dependencies + env: + # The Secret variable setup in GitHub must be in format: "name_or_email key", on a single line + PVS_STUDIO_LICENSE: ${{ secrets.PVS_STUDIO_LICENSE }} + run: | + if [[ "$PVS_STUDIO_LICENSE" != "" ]]; + then + wget -q https://files.viva64.com/etc/pubkey.txt + sudo apt-key add pubkey.txt + sudo wget -O /etc/apt/sources.list.d/viva64.list https://files.viva64.com/etc/viva64.list + sudo apt-get update + sudo apt-get install -y pvs-studio + pvs-studio-analyzer credentials -o pvs-studio.lic $PVS_STUDIO_LICENSE + fi + + - name: PVS-Studio static analysis + run: | + if [[ ! -f pvs-studio.lic ]]; + then + echo "PVS Studio license is missing. No analysis will be performed." + echo "If you have a PVS Studio license please create a project secret named PVS_STUDIO_LICENSE with your license." + echo "You may use a free license. More information at https://www.viva64.com/en/b/0457/" + exit 0 + fi + cd examples/example_null + pvs-studio-analyzer trace -- make WITH_EXTRA_WARNINGS=1 + pvs-studio-analyzer analyze -e ../../imstb_rectpack.h -e ../../imstb_textedit.h -e ../../imstb_truetype.h -l ../../pvs-studio.lic -o pvs-studio.log + plog-converter -a 'GA:1,2;OP:1' -d V1071 -t errorfile -w pvs-studio.log + + Discord-CI: + runs-on: ubuntu-18.04 + needs: [PVS-Studio] + if: always() + steps: + - uses: dearimgui/github_discord_notifier@latest + with: + discord-webhook: ${{ secrets.DISCORD_CI_WEBHOOK }} + github-token: ${{ github.token }} + action-task: discord-jobs + discord-filter: "'{{ github.branch }}'.match(/master|docking/g) != null && '{{ run.conclusion }}' != '{{ last_run.conclusion }}'" + discord-username: GitHub Actions + discord-job-new-failure-message: '' + discord-job-fixed-failure-message: '' + discord-job-new-failure-embed: | + { + "title": "`{{ job.name }}` job is failing on `{{ github.branch }}`!", + "description": "Commit [{{ github.context.payload.head_commit.title }}]({{ github.context.payload.head_commit.url }}) pushed to [{{ github.branch }}]({{ github.branch_url }}) broke static analysis [{{ job.name }}]({{ job.url }}) job.\nFailing steps: {{ failing_steps }}", + "url": "{{ job.url }}", + "color": "0xFF0000", + "timestamp": "{{ run.updated_at }}" + } + discord-job-fixed-failure-embed: | + { + "title": "`{{ github.branch }}` branch is no longer failing!", + "description": "Static analysis failures were fixed on [{{ github.branch }}]({{ github.branch_url }}) branch.", + "color": "0x00FF00", + "url": "{{ github.context.payload.head_commit.url }}", + "timestamp": "{{ run.completed_at }}" + } |