GitHub¶
警告
此功能为实验性功能,可能会有破坏性更改。更多信息请参阅Conan 稳定性部分。
Conan 的 GitHub Actions 集成允许您以简单有效的方式在 GitHub Actions 工作流中设置 Conan 客户端。
可以在其 GitHub Marketplace 页面 或直接在其 GitHub 源代码页面 上找到该项目。
要使用该集成,请在工作流 YAML 文件中添加一个步骤。该集成将为您安装 Conan 客户端并设置环境。
您可以自定义以下参数:
Conan 版本:指定要安装的 Conan 版本(例如,2.15.1)。默认值:最新稳定版。
配置 URL:用于在 Conan 主目录中下载和安装的配置 URL 列表。默认情况下,不安装任何配置。
Conan 审计令牌:用于审计命令扫描软件包中漏洞的 审计 令牌。默认情况下,不使用任何令牌。
Conan 主目录路径:为 Conan 主文件夹设置自定义位置。默认情况下,不使用自定义路径。
缓存 Conan 软件包:自动将所有软件包缓存到 Conan 缓存中,并在下次构建时重新使用它们。默认情况下,不使用缓存。
Python 版本:您可以指定随 Conan 一起安装的 Python 版本,该版本将在环境中可用。默认情况下,安装 Python 3.10。
该集成适用于 GitHub Actions 支持的所有平台,包括 Linux、Windows 和 macOS。
示例¶
本节提供了一些在 GitHub Actions 工作流中使用该集成的示例。
在每日构建中扫描软件包的漏洞¶
警告
请勿共享您的 Conan 审计令牌或在代码中暴露它。始终为敏感数据使用 GitHub Secrets。
首先,您需要在 GitHub Secrets 中设置 Conan 审计令牌。然后,使用以下示例扫描软件包及其依赖项中的漏洞:
name: Nightly security scan
on:
schedule:
- cron: "0 0 * * *"
jobs:
scan-vulnerabilities:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install and setup Conan
uses: conan-io/setup-conan@v1
with:
audit_token: ${{ secrets.MY_CONAN_AUDIT_TOKEN }}
- name: Scan for vulnerabilities with Conan Audit
run: |
conan audit scan .
此示例扫描当前目录中 conanfile.py 中的所有依赖项。请注意,它使用 GitHub 计划 每天午夜运行扫描,以防使用免费服务令牌,避免达到每日限制,但仍能进行安全检查。
安装 Conan 配置并构建软件包¶
此示例从 URL 安装自定义 Conan 配置,恢复先前构建的缓存软件包,构建 conanfile.py 中定义的软件包,并将其上传到 Conan 服务器。
name: Build and upload Conan package
on:
push:
branches:
- 'main'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install and setup Conan
uses: conan-io/setup-conan@v1
with:
config_urls: https://mycompany.com/conan/configs.git
cache_packages: true
- name: Build and upload package
run: |
conan create . -pr:a myprofile --build=missing
conan remote login artifactory developer -p ${{ secrets.MY_CONAN_PASSWORD }}
conan upload "*" --confirm --remote artifactory
在此示例中,操作的选项 cache_packages 设置为 true,因此所有 Conan 缓存中的软件包都会为下一次构建进行缓存。远程信息预计来自通过选项 config_urls 指向的 URL 安装的配置。远程身份验证使用 GitHub Secrets 来保证安全。远程身份验证通过 GitHub Secrets 进行,这是一种存储敏感信息的安全方法。