
plus3it/tardigrade-citardigrade-ci是一个基于Docker的测试框架,打包了Plus3IT用于开发和维护各类项目的工具和命令快捷方式的make目标。它集成了丰富的开发辅助功能,如代码格式化、语法检查(lint)、验证、文档生成等,支持多种文件类型和编程语言,旨在简化项目开发和维护流程,提升开发效率与代码质量。
适用于需要自动化代码质量控制、标准化开发流程的各类项目,尤其适合使用Terraform、CloudFormation、Python、Shell脚本等技术栈的基础设施即代码(IaC)项目和应用开发项目。可帮助团队减少手动操作,确保代码格式一致性,提前发现语法错误和潜在问题。
无论采用何种使用方式,均需一个基础Makefile。以下是示例Makefile内容:
bashSHELL := /bin/bash include $(shell test -f .tardigrade-ci || curl -sSL -o .tardigrade-ci "[***]"; echo .tardigrade-ci)
需先完成前提条件中的Makefile设置。注意:目标项目必须作为绑定挂载(bindmount)添加到Docker工作目录(WORKDIR)。
拉取镜像:
bashIMAGE="plus3it/tardigrade-ci:latest" docker pull "$IMAGE"
运行容器(以获取帮助为例):
bashdocker run --rm -ti -v "$PWD/:/workdir/" -w /workdir "$IMAGE" help
通过make调用目标,推荐结合基于plus3it/tardigrade-ci的Dockerfile使用make docker/run目标,此时系统仅需安装make和docker。
创建项目Dockerfile(指定所需版本):
bashFROM plus3it/tardigrade-ci:0.8.0
完成前提条件中的Makefile设置。
更新.gitignore文件:
bash# tardigrade-ci .tardigrade-ci tardigrade-ci/
运行目标:
bashmake docker/run target=<TARGET>
其中<TARGET>为具体操作目标(如terraform/lint、python/format)。
扩展使用:可在本地Makefile中直接引用tardigrade-ci的变量和目标,例如安装GitHub发布的二进制文件:
bash## Install gomplate gomplate/% GOMPLATE_VERSION ?= latest gomplate/install: @ $(MAKE) install/gh-release/$(@D) FILENAME="$(BIN_DIR)/$(@D)" OWNER=hairyhenderson REPO=$(@D) VERSION=$(GOMPLATE_VERSION) QUERY='.name | endswith("$(OS)-$(ARCH)")'
使用Makefile方式需系统安装以下软件及版本:
make v4.2+jq v1.5+git v2.20+bash v4+sed v4+awk v4+grep v3+xargs v4.7+curl v7+部分目标依赖额外包(可预安装或避免调用相关目标):zip、nodejs。
bootstrap Makefile通过include指令获取并处理核心逻辑,支持两种操作模式:
自动将tardigrade-ci仓库克隆到项目子目录(如/{project}/tardigrade-ci/),由bootstrap管理更新。通过环境变量TARDIGRADE_CI_BRANCH指定分支/标签,默认解析为Dockerfile版本(若存在)或master分支。
用户需手动将tardigrade-ci仓库克隆到项目同级目录(如/{project}/和/tardigrade-ci/),适合本地开发调试tardigrade-ci本身。
make init:强制启用用户模式,克隆仓库到项目子目录make clean:删除克隆目录和bootstrap文件,下次运行时重新初始化通过make help查看所有目标,核心目标如下:
bashAvailable targets: bumpversion/major 使用'bumpversion'更新主版本 bumpversion/minor 使用'bumpversion'更新次版本 bumpversion/patch 使用'bumpversion'更新补丁版本 cfn/lint Lint CloudFormation文件 clean 清理build-harness docker/build 构建tardigrade-ci Docker镜像 docker/clean 清理本地Docker环境 docker/run 运行tardigrade-ci Docker镜像 docs/generate 生成Terraform文档 docs/lint Lint Terraform文档 ec/lint 运行editorconfig-checker检查项目 hcl/format 格式化hcl文件 hcl/lint Lint hcl文件 hcl/validate 验证hcl文件 help 显示帮助信息 init 初始化build-harness json/format 格式化json文件 json/lint Lint json文件 python/format 格式化Python文件 python/lint 检查Python文件格式并Lint sh/lint Lint bash脚本文件 terraform/format 格式化terraform文件 terraform/lint Lint terraform文件 test 运行tests目录中的Terraform测试 yaml/lint Lint YAML文件
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务