我有一个运行一些测试用例的ECS任务。我让它在Fargate运行。耶!
现在我想从容器中下载测试结果文件。我有方便的任务和容器ID。我可以用
找到退出代码aws ecs describe-tasks --cluster Fargate --tasks <my-task-id>
如何下载生成的日志和/或文件?
答案 0 :(得分:3)
现在看来,从我的服务器获取测试结果的唯一方法是在容器关闭之前将结果发送到S3。
从this thread开始,无法将卷/ 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环境变量。您选择的存储桶名称需要预先创建,但不需要事先创建其下的任何目录结构。
答案 1 :(得分:0)
您可能希望在此用例中使用CodeBuild,它可以自动将工件复制到S3。
使用简单的bash脚本和AWS CLI实际上很容易编排以下内容:
我使用这种方法在CodeBuild中运行构建,使用Bamboo作为总体持续交付系统。