# Copyright (c) 2020-2023 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: "CodeQL"

on:
  workflow_dispatch:
#   push:
#     branches: [ "master", "sve*", "test_event_*", "v1.*" ]
#   pull_request:
  schedule:
    - cron: '0 5 * * *'

jobs:
  analyze:
    uses: project-chip/connectedhomeip/.github/workflows/build.yaml@master
    with:
      run-codeql: true
  
