Skip to content

CodeQL

CodeQL #355

# 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:
push:
branches: [main, develop]
paths:
- "Scenamatica/**"
pull_request:
# The branches below must be a subset of the branches above
branches: [develop]
paths:
- "Scenamatica/**"
schedule:
- cron: '31 8 * * 4'
workflow_dispatch:
jobs:
setup-nms:
name: Build NMS with NMSAction
strategy:
matrix:
nms-version:
- 1.16.5
- 1.15.2
- 1.14.4
- 1.13.2
- 1.13
runs-on: self-hosted
steps:
- name: Try to restore caches
uses: actions/cache@v4
id: restore-cache
with:
path: nms-build/.m2
key: nms-maven-${{ matrix.nms-version }}
restore-keys: |
nms-maven-${{ matrix.nms-version }}
lookup-only: true
- name: Build NMS if cache miss
if: steps.restore-cache.outputs.cache-hit != 'true'
uses: PeyaPeyaPeyang/nmsaction@v6
with:
rev: ${{ matrix.nms-version }}
- name: Save caches
if: steps.restore-cache.outputs.cache-hit != 'true'
uses: actions/cache@v4
with:
path: nms-build/.m2
key: nms-maven-${{ matrix.nms-version }}
build-and-analyze:
name: Build with Maven
runs-on: self-hosted
needs: setup-nms
steps:
- uses: actions/checkout@v4
- name: Change directory to scenamatica
run: cd Scenamatica
- name: Set up JDK 8
uses: actions/setup-java@v4
id: maven-cache
with:
java-version: 8
distribution: zulu
cache: maven
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.8.2
- uses: actions/setup-node@v4
with:
node-version: '20.x'
- run: npm install @actions/cache
- name: Restore NMS cache
uses: actions/github-script@v7
if: steps.maven-cache.outputs.cache-hit != 'true'
with:
script: |
const cache = require('@actions/cache');
const path = require('path');
const nmsVersions = [
'1.16.5',
'1.15.2',
'1.14.4',
'1.13.2',
'1.13'
];
for (const nmsVersion of nmsVersions) {
const key = `nms-maven-${nmsVersion}`;
const cacheKey = await cache.restoreCache(
['nms-build/.m2'],
key,
nmsVersions
);
if (cacheKey) {
console.log(`Cache restored from key: ${cacheKey}`);
} else {
console.error(`Cache not found for key: ${key}`);
process.exit(1);
}
}
- name: Deploy NMS cache
if: steps.maven-cache.outputs.cache-hit != 'true'
run: |
mv -f nms-build/.m2/repository/repository $HOME/.m2/ -v
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: java
- name: Build with Maven
run: |
mvn -B package --file Scenamatica/pom.xml -D"jar.finalName=Scenamatica" -P debug
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3