我有一个运行一些测试用例的 ECS 任务。我让它在 Fargate 中运行。耶!
现在我想从容器中下载测试结果文件。我手头有任务和容器 ID。我可以找到退出代码
aws ecs describe-tasks --cluster Fargate --tasks <my-task-id>
如何下载生成的日志和/或文件?
我有一个运行一些测试用例的 ECS 任务。我让它在 Fargate 中运行。耶!
现在我想从容器中下载测试结果文件。我手头有任务和容器 ID。我可以找到退出代码
aws ecs describe-tasks --cluster Fargate --tasks <my-task-id>
如何下载生成的日志和/或文件?
看起来,截至目前,从我的服务器获取测试结果的唯一方法是在容器关闭之前将结果发送到 S3。
在这个线程中,无法将卷/EFS 挂载到 Fargate 容器上。
这是我的 bash 脚本,用于运行我的测试(在 build.sh 中),然后将结果上传到 S3:
#!/bin/bash
echo Running tests...
pushd ~circleci/project/
export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY
export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY
commandToRun="~/project/.circleci/build_scripts/build.sh";
# Run the command
eval $commandToRun 2>&1 | tee /tmp/build.log
# Get the exit code
exitCode=$?
aws s3 cp /tmp/build-$FEATURE.log s3://$CICD_BUCKET/build.log \
--storage-class REDUCED_REDUNDANCY \
--region us-east-1
exit ${exitCode}
当然,您必须传入 AWS_ACCESS_KEY、AWS_SECRET_KEY 和 CICD_BUCKET 环境变量。您选择的存储桶名称需要预先创建,但它下面的任何目录结构都不需要预先创建。
您可能想查看在此用例中使用 CodeBuild,它可以自动将工件复制到 S3。
使用简单的 bash 脚本和 AWS CLI 来编排以下内容实际上非常容易:
我使用这种方法在 CodeBuild 中运行构建,并将 Bamboo 作为总体持续交付系统。