jenkins - 使用带有 Makefile 的 jenkins 将 tar 文件推送到 s3
问题描述
我正在尝试使用 jenkins 部署构建文件夹,我在源代码中添加了 Makefile,它将以 tar 格式将我的所有构建文件推送到 s3。
下面是我的 Makefile,我是这个 Makefile 的新手。
因此,基于 jenkins 构建参数,我正在检查要添加的文件名和要选择的脚本。
在这里,我使用 if else 编写过,但不知道如何在本地运行它并检查它是否正确。
我也可以使用switch而不是if else,所以更多的环境会有所帮助。
从本地运行这个文件的命令是什么,我试过make -f Makefile
了,但什么也没发生command for checking testing
run test:
# command for checking testing
create tar file:
# pick the proper env based on jenkins params
mkdir target
if [${ENV} = "testing"]; then \
npm install && npm run build:testing
tar czf target/app-${BUILD_NUMBER}_testing.tar.gz build/
else \
npm install && npm run build:development
tar czf target/app-${BUILD_NUMBER}_development.tar.gz build/
fi
push to s3:
aws s3 sync target/ s3://app-builds
基本上,我试图在 s3 中的 app-builds 存储桶中获取 tar 文件,当命令运行时,这些文件将包含在 build 文件夹中,例如基于从 jenkins 参数传递的 env。
s3 应用程序构建存储桶中的预期输出
app-0.0.1_testing.tar.gz
app-0.0.2_testing.tar.gz
app-0.0.3_development.tar.gz
解决方案
首先 - 建议:消除目标名称中的空格。Make 不适用于带有嵌入空间的文件/目标。例如:“push to s3”应该是“push_to_s3”(或类似的)
默认情况下,调用 make 将执行 makefile 中的第一个目标(运行测试)。要调用 s3 目标,请使用“make push_to_s3”。
推荐阅读
- c++ - 创建 RAII 类时应该如何处理错误?
- typescript - 您可以在单个文件或代码块上拒绝严格模式等吗?
- python - Python recv 丢弃蓝牙数据?
- python - 用 Python 中的 BeautifulSoup、Selenium 解析表格
- google-sheets - 使用脚本硬编码条件格式
- razor - 如何使用 2sxc 和 ac# razor 模板将 CSS 类的动态列表添加到 div?
- android - 使用 react-native-elements 在 android 中显示的图标不正确
- mongodb - 无法在 ubuntu windows 中启动 mongodb 服务器
- visual-studio - 如何在没有管理员访问权限的情况下部署到 IIS
- windows - .NET Framework 桌面应用程序如何获得提升的权限?