Using Go Agent - Scanning a build
Report the structure of your build to SeaLights. Following this step, you will see the build structure in the SeaLights dashboard.
Statically instrument the code files, creating a version of the files for testing (the original code is not modified). The instrumentation inserts code to gather and send coverage (function signatures only, no runtime arguments) to SeaLights.
Scanning a standalone project
./slcli scan /
--bsid buildSessionId.txt
--path-to-scanner ./<path-to-build-scanner-app> /
--workspacepath <path-to-app-dir>
--scm git
--scmBaseUrl <base-url>
--scmVersion "0"
--scmProvider github
--disable-on-init true
Scanning a Lambda project
slcli scan \
--collector-url http://<your-collector-url>/api \
--light-mode true \
--bsid buildSessionId.txt \
--path-to-scanner ./<path-to-build-scanner-app> \
--workspacepath <path-to-app-dir> \
--scm git \
--scmBaseUrl <base-url> \
--scmVersion "0" \
--scmProvider github
--disable-on-init true
Unit Test Coverage in Lambda Workflows
Using --light-mode true
during the scan step may result in inaccurate Unit Test coverage data, depending on your workflow. If you find this is the case, you should take the following steps:
1. Remove light-mode true
from the slcli scan
command
2. Set the environment variable SEALIGHTS_LIGHT_MODE: "true"
As noted, “light-mode” is a necessary parameter when deploying a Lambda function with SeaLights. Using this approach allows the unit test coverage data to be accurately resolved, while still deploying the Lambda layer with the correct configuration.
Ignoring Files during the build scan
To ignore certain files during the buildscan phase, create an .slignore
file and place it at the root folder of the project. The agent will automatically look for this file during the execution of the command.
Below is a sample content of the file
types # ignoring all the files and folders below types folder
types/results # ignoring all the files and folders below types/results folder
server/calc.go # ignoring only calc.go file under the server folder
**/result.go # ignoring all the result.go files under all the folders
cmd