背景
最近想尝试一下通过GitHub Actions的自动化编译测试来给Github上项目加上一个“Windows passing”的小图标,如下图所示,这是最终得到的结果。

但是在尝试的过程中有不少坑浪费了很多不必要的时间,所以本文稍微记录一下当时遇到的问题以及解决的方法。
项目构建背景
- 通过cmake来自动化构建C++项目
- 使用CUDA框架
- 使用了子项目(submodules)
- 使用SSH来克隆远程项目
踩坑记录
- 最先产生的问题是主要是由于使用了CUDA,那么直接用官方的一些cmake实例很难完成环境配置,因此我通过查资料发现了这个Github的开源项目(CUDA + Cmake example using Github Actions),其中提供了在Windows平台和Ubuntu平台上的CUDA自动化编译案例,由于我现在的项目只是在Windows平台上进行开发和使用所以本文只简单分析一下Windows平台上的案例(
cuda-cmake-github-actions/.github/workflows/Windows.yml),如下所示:
# Windows builds.
name: Windows
on:
push:
paths:
- "**"
- "!.github/**"
- ".github/workflows/Windows.yml"
# pull_request:
# paths:
# - "**"
# - "!.github"
# - ".github/workflows/Windows.yml"
此处脚本定义的是监测到某事件发生时,就会调用这个脚本中所写的job。此处表示的是当开发者push本地的commit到远端时会调用Windows.yml这个脚本。
jobs:
build:
runs-on: ${
{ matrix.os }}
strategy:
fail-fast: false
# explicit include-based build matrix, of known valid options
matrix:
include:
# Windows2019 & VS 2019 supports 10.1+
- os: windows-2019
cuda: "11.0.167"
visual_studio: "Visual Studio 16 2019"
- os: windows-2019
cuda: "10.2.89"
visual_studio: "

最低0.47元/天 解锁文章
4599

被折叠的 条评论
为什么被折叠?



