You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/codeql/codeql-cli/creating-codeql-databases.rst
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -231,8 +231,7 @@ commands that you can specify for compiled languages.
231
231
Using indirect build tracing
232
232
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
233
233
234
-
If the CodeQL CLI autobuilders for compiled languages do not work with your CI workflow and you cannot specify
235
-
build commands, you can use indirect build tracing to create a CodeQL database. To use indirect build tracing, your CI system must be able to set custom environment variables for each build action.
234
+
If the CodeQL CLI autobuilders for compiled languages do not work with your CI workflow and you cannot wrap invocations of build commands with ``codeql database trace-command``, you can use indirect build tracing to create a CodeQL database. To use indirect build tracing, your CI system must be able to set custom environment variables for each build action.
236
235
237
236
CodeQL databases are created with indirect build tracing when you run the following command from the checkout root of your project:
238
237
@@ -251,27 +250,26 @@ You may specify other options for the ``codeql database init`` command as normal
251
250
252
251
.. pull-quote:: Note
253
252
254
-
If you are on Windows, set either ``--trace-process-level <number>`` or ``--trace-process-name <parent process name>`` so that the option points to the parent CI process.
253
+
If you are on Windows, set either ``--trace-process-level <number>`` or ``--trace-process-name <parent process name>`` so that the option points to a parent CI process that will observe all build steps for the code being analyzed.
255
254
256
255
257
-
The ``codeql database init`` command will output a message:
258
-
```
256
+
The ``codeql database init`` command will output a message::
257
+
259
258
Created skeleton <database>. This in-progress database is ready to be populated by an extractor.
260
259
In order to initialise tracing, some environment variables need to be set in the shell your build will run in.
261
260
A number of scripts to do this have been created in <database>/temp/tracingEnvironment.
262
261
Please run one of these scripts before invoking your build command.
263
262
264
263
Based on your operating system, we recommend you run: ...
265
-
```
266
264
267
265
The ``codeql database init`` command will produce files in ``<database>/temp/tracingEnvironment`` containing environment variables and their values for CodeQL to trace subsequent build steps. These files are named ``start-tracing.{json,sh,bat,ps1}``. Use one of these files with your CI system's mechanism for setting environment variables for future steps. You can:
268
266
269
267
* Read the JSON file, process it, and print out environment variables in the format expected by your CI system. For example, Azure DevOps expects ``echo "##vso[task.setvariable variable=NAME]VALUE"``.
270
268
* Or source the ``sh/bat/ps1`` script so that its variables go into your shell environment.
271
269
272
-
Build your code and then run the command ``codeql database finalize <database>``.
270
+
Build your code, end build tracing, and then run the command ``codeql database finalize <database>``.
273
271
274
-
You can optionally clean up the environment variables by following the same process as with the ``--begin-tracing`` scripts, except now with ``--end-tracing`` scripts in the same directory.
272
+
You can optionally clean up the environment variables by following the same process as with the ``--begin-tracing`` scripts, except now with ``end-tracing.{json,sh,bat,ps1}`` scripts in the same directory.
275
273
276
274
Once you have created a CodeQL database using indirect build tracing, you can work with it like any other CodeQL database. For example, analyze the database, and upload the results if using Code Scanning.
277
275
@@ -326,6 +324,8 @@ The following example shows how you could use indirect build tracing in an Azure
0 commit comments