mirror of
https://github.com/github/codeql.git
synced 2026-01-28 13:53:10 +01:00
This is solving a papercut, where the C++ build was relying on the local dbscheme file to be up-to-date, even if all the information for building is actually in `schema.yml`. This made a pure C++ development cycle with changes to `schema.yml` clumsy, as it required a further dbscheme generation step. Now for C++ the dbscheme is generated internally in the build files, and thus a change in `schema.yml` is reflected immediately in the C++ build. A `swift/codegen` step for checked in generated code (including the dbscheme) is still required, but a developer can do it just before running QL tests or committing, instead of during each C++ recompilation. Some directory reorganization was also carried out, moving specific generator modules to a new `generators` python package, and only leaving the two drivers at the top level.
33 lines
899 B
YAML
33 lines
899 B
YAML
name: "Swift: Check code generation"
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- "swift/**"
|
|
- .github/workflows/swift-codegen.yml
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
codegen:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: ./.github/actions/fetch-codeql
|
|
- uses: bazelbuild/setup-bazelisk@v2
|
|
- name: Run unit tests
|
|
run: |
|
|
bazel test //swift/codegen/test --test_output=errors
|
|
- name: Check that QL generated code was checked in
|
|
run: |
|
|
bazel run //swift/codegen
|
|
git add swift
|
|
git diff --exit-code --stat HEAD
|
|
- name: Generate C++ files
|
|
run: |
|
|
bazel run //swift/codegen:cppcodegen -- --cpp-output=$PWD/swift-generated-headers
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: swift-generated-headers
|
|
path: swift-generated-headers/*.h
|