ci: add CI workflow to run tests on push and pull requests to master#3
ci: add CI workflow to run tests on push and pull requests to master#3
Conversation
Walkthrough这次修改在项目中添加了一个新的 CI 工作流,并对 Rakefile 进行了优化。新增加的 CI 工作流定义在 Changes
Sequence Diagram(s)sequenceDiagram
participant GitHub as GitHub事件
participant CI as CI工作流
participant Checkout as 代码检出
participant Go as Go环境配置
participant GVM as GVM安装脚本
participant Ruby as Ruby环境配置
participant Rake as Rake任务
GitHub->>CI: 触发CI (push/PR到master)
CI->>Checkout: 检出仓库
Checkout-->>CI: 返回代码
CI->>Go: 设置Go环境 (>=1.17.0)
Go-->>CI: Go环境就绪
CI->>GVM: 执行GVM安装脚本
GVM-->>CI: 安装结果返回
CI->>Ruby: 设置Ruby环境 (版本3.3, 开启bundler缓存)
Ruby-->>CI: Ruby环境就绪
CI->>Rake: 执行默认Rake测试任务
Rake-->>CI: 返回测试结果
✨ Finishing Touches
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
54c463b to
95e3d6b
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (3)
tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh (1)
1-1: 建议添加 Shebang 声明当前脚本缺少 shebang 声明,可能会导致在不同的 shell 环境中运行时出现不可预期的行为。建议在文件开头添加如下 shebang,例如:
+#!/usr/bin/env bash这样有助于明确脚本的解释器并消除 ShellCheck 提示的警告。
🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.21.3_binary_comment_test.sh (1)
1-1: 建议添加 Shebang 行
当前脚本缺少 shebang 声明,建议在文件顶部添加例如#!/bin/bash的声明,以明确指定脚本解释器,并满足 Shellcheck 的建议。🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.20.2_comment_test.sh (1)
1-1: 建议添加 Shebang 行
建议在文件顶部添加#!/bin/bash声明,确保脚本在预期的环境中运行,同时解决 Shellcheck 提示的问题。🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (11)
.github/workflows/ci.yaml(1 hunks)Rakefile(0 hunks)tests/00gvm_install_comment_test.sh(1 hunks)tests/gvm_alias_comment_test.sh(1 hunks)tests/gvm_use_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.2.2_binary_comment_test.sh(0 hunks)tests/scenario/gvm_install_1.20.2_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.21.3_binary_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.4.3_comment_test.sh(0 hunks)tests/scenario/gvm_install_1.4.3_preferbinary_comment_test.sh(0 hunks)
💤 Files with no reviewable changes (4)
- tests/scenario/gvm_install_1.4.3_comment_test.sh
- tests/scenario/gvm_install_1.2.2_binary_comment_test.sh
- tests/scenario/gvm_install_1.4.3_preferbinary_comment_test.sh
- Rakefile
🚧 Files skipped from review as they are similar to previous changes (1)
- .github/workflows/ci.yaml
🧰 Additional context used
🪛 Shellcheck (0.10.0)
tests/scenario/gvm_install_1.20.2_comment_test.sh
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.21.3_binary_comment_test.sh
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: test (ubuntu-latest)
- GitHub Check: test (macos-latest)
🔇 Additional comments (9)
tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh (1)
1-2: 测试命令符合预期该命令
gvm install go1.23.5 --prefer-binary #status=0明确期望返回状态码为 0,符合 CI 测试需求。🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/00gvm_install_comment_test.sh (2)
2-5: 清理旧版本的命令
这些卸载命令使用重定向隐藏了执行输出,能够有效清理旧版本 Go 的安装,确保后续安装过程不会受干扰。
8-14: 新版 Go 安装与验证命令
脚本中新增的安装命令已更新为安装 go1.20.3、go1.21.4 和 go1.23.6,同时通过gvm list命令进行正则匹配验证,确保各版本安装均正常。tests/gvm_use_comment_test.sh (2)
2-3: 验证环境切换到 go1.23.6
使用gvm use go1.23.6后,紧跟的go version命令输出正确匹配/go1\.23\.6/,表明环境切换操作有效。
4-5: 验证环境切换到 go1.21.4
调用gvm use go1.21.4后,通过go version验证输出匹配/go1\.21\.4/,确保对应的环境切换成功。tests/gvm_alias_comment_test.sh (4)
3-7: 清理现有别名确保测试环境整洁
通过删除旧的别名(如 foo 和 bar),可以保证测试环境干净,防止前次测试残留数据影响后续验证,步骤清晰合理。
9-11: 创建别名与验证列表展示
使用gvm alias create创建的别名 foo(关联 go1.23.6)和 bar(关联 go1.21.4)在gvm alias list中能正确显示,正则匹配验证充分,确保命令执行正常。
12-15: 验证使用别名切换 Go 环境
在使用别名后,通过go version输出的匹配结果准确验证了环境切换至预期的 Go 版本,流程逻辑严谨,测试有效。
16-20: 删除别名后验证
删除别名后再次调用gvm alias list确认别名已被成功移除,测试逻辑完整且清晰,确保后续操作不会受到旧别名干扰。
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (4)
tests/00gvm_install_comment_test.sh (1)
1-1: 建议添加 shebang 指令。
建议在文件顶部添加一行#!/bin/bash来指定脚本的执行环境,这样可以避免 shellcheck 提示 [SC2148] 的问题。🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.21.3_binary_comment_test.sh (1)
1-1: 建议添加 shebang 指令。
建议在文件顶部添加#!/bin/bash来指定脚本执行环境,以消除 shellcheck 的提示 [SC2148]。🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh (1)
1-1: 建议添加 shebang 指令。
建议在脚本文件的顶部添加#!/bin/bash,以明确指定运行环境,从而避免 shellcheck 的警告 [SC2148]。🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.20.2_comment_test.sh (1)
1-1: 建议添加 shebang 指令。
建议在文件顶部添加#!/bin/bash来指定脚本的执行环境,确保在预期的 shell 中运行,以满足 shellcheck 要求 [SC2148]。🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (11)
.github/workflows/ci.yaml(1 hunks)Rakefile(2 hunks)tests/00gvm_install_comment_test.sh(1 hunks)tests/gvm_alias_comment_test.sh(1 hunks)tests/gvm_use_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.2.2_binary_comment_test.sh(0 hunks)tests/scenario/gvm_install_1.20.2_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.21.3_binary_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.4.3_comment_test.sh(0 hunks)tests/scenario/gvm_install_1.4.3_preferbinary_comment_test.sh(0 hunks)
💤 Files with no reviewable changes (3)
- tests/scenario/gvm_install_1.4.3_preferbinary_comment_test.sh
- tests/scenario/gvm_install_1.2.2_binary_comment_test.sh
- tests/scenario/gvm_install_1.4.3_comment_test.sh
🚧 Files skipped from review as they are similar to previous changes (4)
- Rakefile
- tests/gvm_use_comment_test.sh
- tests/gvm_alias_comment_test.sh
- .github/workflows/ci.yaml
🧰 Additional context used
🪛 Shellcheck (0.10.0)
tests/scenario/gvm_install_1.20.2_comment_test.sh
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.21.3_binary_comment_test.sh
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: test (ubuntu-latest)
- GitHub Check: test (macos-latest)
🔇 Additional comments (12)
tests/00gvm_install_comment_test.sh (9)
2-2: 更新卸载命令的 Go 版本号。
将卸载命令更新为gvm uninstall go1.20.7,确保测试前清理对应版本的安装环境。
4-4: 更新卸载命令的 Go 版本。
此次修改卸载了go1.21.4,保证测试环境中不含该版本,保持版本一致性。
5-5: 更新卸载命令的 Go 版本。
增加了卸载go1.23.6的操作,有利于后续安装新版本前先清理旧版本残留。
8-8: 安装命令验证正确。
安装go1.20.7的命令及状态码检查(#status=0)设置看起来合理,确保安装操作执行成功。
9-9: 环境变量设置和安装命令配置有效。
通过设置GOROOT_BOOTSTRAP=$GVM_ROOT/gos/go1.20.7后安装master分支,逻辑清晰,建议确认 master 分支与当前环境的兼容性。
11-11: 安装 go1.21.4 命令配置正确。
使用环境变量指定启动环境后安装go1.21.4,测试命令设置及状态码检查合理。
12-12: 验证命令输出符合预期。
gvm list命令通过匹配/go1.21.4/来确认安装情况,输出检查逻辑清晰。
13-13: 安装 go1.23.6 命令配置恰当。
采用GOROOT_BOOTSTRAP环境变量安装go1.23.6,配合状态码验证确保安装流程顺利。
14-14: 验证更高版本安装成功。
gvm list后通过匹配/go1.23.6/来检查安装结果,看起来设置正确。tests/scenario/gvm_install_1.21.3_binary_comment_test.sh (1)
1-1: 新增二进制安装测试命令。
通过gvm install go1.21.3 --binary #status=0命令测试以二进制方式安装 go1.21.3,状态码检查确保安装成功,配置合理。🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh (1)
1-1: 新增偏好二进制安装测试命令。
通过gvm install go1.23.5 --prefer-binary #status=0命令测试安装 go1.23.5 时优先使用二进制版本,状态码检查合理,命令配置正确。🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.20.2_comment_test.sh (1)
1-1: 新增安装测试命令。
命令gvm install go1.20.2 #status=0用于测试安装 go1.20.2,并通过状态码验证安装成功,此配置合理。🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
Change-Id: I0e44649554fa33d0bedfe7da8b2c155cf490144d
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (3)
tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh (1)
1-1: 建议添加解释器声明(shebang)
当前脚本缺少 shebang 指令,可能会导致在不同的 Shell 环境下执行不一致。建议在文件顶部添加例如#!/bin/bash或#!/usr/bin/env bash的声明,以确保脚本在预期的解释器下运行。可参考以下 diff 进行修正:
+#!/bin/bash🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.20.2_comment_test.sh (1)
1-1: 建议添加shebang以明确指定目标Shell当前脚本文件缺少shebang行,这会导致Shellcheck报错(SC2148)。建议在文件顶部添加类似于
#!/bin/bash的shebang,以明确指定目标shell,并提升脚本的可移植性和可维护性。请参阅下面的diff示例进行修改:
+#!/bin/bash gvm install go1.20.2 #status=0🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.21.3_binary_comment_test.sh (1)
1-1: 建议添加 shebang 行以指定脚本解释器
当前脚本缺少 shebang 行,这会导致在不同环境下执行时解析器不确定,并引起 Shellcheck 警告(SC2148)。建议在文件顶部添加适当的 shebang,例如:+#!/usr/bin/env bash🧰 Tools
🪛 Shellcheck (0.10.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (11)
.github/workflows/ci.yaml(1 hunks)Rakefile(2 hunks)tests/00gvm_install_comment_test.sh(1 hunks)tests/gvm_alias_comment_test.sh(1 hunks)tests/gvm_use_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.2.2_binary_comment_test.sh(0 hunks)tests/scenario/gvm_install_1.20.2_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.21.3_binary_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh(1 hunks)tests/scenario/gvm_install_1.4.3_comment_test.sh(0 hunks)tests/scenario/gvm_install_1.4.3_preferbinary_comment_test.sh(0 hunks)
💤 Files with no reviewable changes (3)
- tests/scenario/gvm_install_1.2.2_binary_comment_test.sh
- tests/scenario/gvm_install_1.4.3_comment_test.sh
- tests/scenario/gvm_install_1.4.3_preferbinary_comment_test.sh
🚧 Files skipped from review as they are similar to previous changes (5)
- Rakefile
- tests/gvm_alias_comment_test.sh
- tests/00gvm_install_comment_test.sh
- tests/gvm_use_comment_test.sh
- .github/workflows/ci.yaml
🧰 Additional context used
🪛 Shellcheck (0.10.0)
tests/scenario/gvm_install_1.20.2_comment_test.sh
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.21.3_binary_comment_test.sh
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
tests/scenario/gvm_install_1.23.5_preferbinary_comment_test.sh
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: test (ubuntu-latest)
- GitHub Check: test (macos-latest)
Change-Id: I0e44649554fa33d0bedfe7da8b2c155cf490144d
Summary by CodeRabbit