AWS Notes
5.6K subscribers
444 photos
42 videos
10 files
2.8K links
AWS Notes — Amazon Web Services Educational and Information Channel

Chat: https://xn--r1a.website/aws_notes_chat

Contacts: @apple_rom, https://www.linkedin.com/in/roman-siewko/
Download Telegram
​​У CodeBuild есть возможность сохранять результаты тестов — Test Reports:

https://docs.aws.amazon.com/codebuild/latest/userguide/test-reporting.html

В Test Reports есть поддержка JUnit, Cucumber, TestNG и TRX форматов, история хранится 30 дней в самом сервисе, а чтобы больше - нужно закидывать на S3.

Пример конфигурации в блоге:

https://aws.amazon.com/blogs/devops/test-reports-with-aws-codebuild/

#CodeBuild
CodeBuild + SSM

Чтобы отладить что-то в CodeBuild можно использовать SSM Session Manager:

https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html

То есть можно тормознуть процесс сборки CodeBuild с помощью вставки codebuild-breakpoint, после приконнектиться через SSM, посмотреть на местности, что не так и после продолжить билд с помощью команды codebuild-resume.

#CodeBuild #SSM
​​Запустить билды в CodeBuild можно оптом (batch):

https://docs.aws.amazon.com/codebuild/latest/userguide/batch-build.html

Есть варианты запустить последовательно (batch-graph), параллельно (batch-list) и с разными наборами переменных (batch-matrix).

Можно переоределить настройки и переменные для нужного "под-билда" и задать опцию, чтобы, например, все параллельные билды падали, когда какой-то из них уже упал (чтобы длительные операции не ели зря деньги).

batch:
fast-fail: true

Задать нужные настройки и запустить оптом CodeBuild можно из CodePipeline:

https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html

#CodeBuild #CodePipeline
​​Обнаружив ошибку CannotPullContainerError в логах CodeBuild:

Unable to pull customers container image: toomanyrequests. You have reached your pull rate limit.
You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit (status code: BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE)

Которая обозначает, что превышен лимит для вытягивания публичных образов из докерхаба, то решить вопрос можно, добавив аутентификацию:

https://aws.amazon.com/blogs/devops/how-to-use-docker-images-from-a-private-registry-in-aws-codebuild-for-your-build-environment/

Для чего потребуется создать секрет, прописав его ARN в CodeBuild. Для получения секрета нужно добавить сервисной роли права на secretsmanager:GetSecretValue:

https://docs.aws.amazon.com/codebuild/latest/userguide/sample-private-registry.html#private-registry-sample-create-project

#CodeBuild
​​CI/CD: CodeCommit + CodeBuild + CodePipeline + Terraform

https://www.tecracer.com/blog/2023/05/terraform-ci/cd-pipelines-use-aws-codepipeline-to-build-fully-managed-deployment-pipelines-for-terraform..html

Хорошая задумка, мне нравится. Похожую схему использую много лет, лишь вместо CodePipeline у меня Jenkins и KICS в качестве SAST.

#CodeBuild #CodePipeline #Terraform
8
​​🆕 CodeBuild + GitHub Actions:

https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html

You can use an action runner to run GitHub Actions within CodeBuild. This can be done by adding steps to any phase in your buildspec file.

#CodeBuild #GitHub
👍5🎉1
​​CodeBuild + GitHub Actions self-hosted runners 🎉

https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html

CodeBuild's integration with GitHub Actions webhooks offers all compute platforms, including Lambda, GPU-enhanced and Arm-based instances.

#CodeBuild #GitHub_Actions
👍4
​​CodeBuild + macOS

https://aws.amazon.com/blogs/aws/add-macos-to-your-continuous-integration-pipelines-with-aws-codebuild/

▫️ Apple M2
▫️ macOS 14 Sonoma

⚠️ $0.02 per minute but 24h minimum (28.8$+) 😐

#CodeBuild
3😁9🤮4🤡3👍1
CodeBuild Docker Server — building Docker images in seconds!

https://aws.amazon.com/blogs/aws/accelerate-ci-cd-pipelines-with-the-new-aws-codebuild-docker-server-capability/

BUT — you'll be charged like for a regular EC2 instance (around $50/month) unless you explicitly disable the CodeBuild Docker Server feature — even if you don’t run any builds.

So use it with caution.
Or better: modify your project settings before the first build of the day to reduce costs.

Note: The first run takes the usual time, and only subsequent builds benefit from layer caching to speed things up.

#CodeBuild
👍7