Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add codeQL support #335

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: "Build"

on:
workflow_call: # allows to be invoked as part of a larger workflow

env:
solution: Microsoft.DurableTask.sln
config: Release

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
with:
submodules: true

- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
global-json-file: global.json

- name: Restore dependencies
run: dotnet restore $solution

- name: Build
run: dotnet build $solution --configuration $config --no-restore -p:FileVersionRevision=$GITHUB_RUN_NUMBER -p:ContinuousIntegrationBuild=true

- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: built-code
path: ./
67 changes: 67 additions & 0 deletions .github/workflows/codeQL.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# This workflow generates weekly CodeQL reports for this repo, a security requirements.
# The workflow is adapted from the following reference: https://github.com/Azure-Samples/azure-functions-python-stream-openai/pull/2/files
# Generic comments on how to modify these file are left intactfor future maintenance.

name: "CodeQL"

on:
push:
branches: [ "main", "*" ] # TODO: remove "*" post approval
pull_request:
branches: [ "main", "*"] # TODO: remove "*" post approval
schedule:
- cron: '0 0 * * 1' # Weekly Monday run, needed for weekly reports
workflow_call: # allows to be invoked as part of a larger workflow
workflow_dispatch: # allows for the workflow to run manually see: https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow

env:
solution: DurableTask.sln
config: Release

jobs:
invoke-build-workflow: # Call re-useable build workflow
uses: ./.github/workflows/build.yml

analyze:
name: Analyze
needs: invoke-build-workflow # Can only test after build completes

runs-on: windows-latest
permissions:
actions: read
contents: read
security-events: write


strategy:
fail-fast: false
matrix:
language: ['csharp']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:

- name: Download built-code
uses: actions/download-artifact@v2
with:
name: built-code
path: ./ # This path will match the upload path

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# Run CodeQL analysis
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
11 changes: 11 additions & 0 deletions eng/ci/official-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,17 @@ trigger:
# CI only, does not trigger on PRs.
pr: none

schedules:
# Build nightly to catch any new CVEs and report SDL often.
# We are also required to generated CodeQL reports weekly, so this
# helps us meet that.
- cron: "0 0 * * *"
displayName: Nightly Build
branches:
include:
- main
always: true

resources:
repositories:
- repository: 1es
Expand Down
Loading