# CircleCI

CircleCI is CI/CD tooling that automates software builds, tests, and deployments.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Shared Secrets in CI Systems Create Security Risks

DevFeed: [Shared Secrets in CI Systems Create Security Risks](<https://devfeed.tech/articles/getting-rid-of-shared-secrets-the-major-design-flaw-of-all-ci-systems-29846.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/shared-secrets-oidc-cicd/>)

Author: info@goteleport.com (Noah Stride)

Published: 2023-03-08T00:00:00Z

Content type: article

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [ci](<https://devfeed.tech/topics/ci.md>), [Security](<https://devfeed.tech/topics/security.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [API keys](<https://devfeed.tech/topics/api-keys.md>), [CircleCI](<https://devfeed.tech/topics/circleci.md>), [ssh](<https://devfeed.tech/topics/ssh.md>)

Tags: [api-keys](<https://devfeed.tech/tags/api-keys.md>), [ci](<https://devfeed.tech/tags/ci.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [security](<https://devfeed.tech/tags/security.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [travis-ci](<https://devfeed.tech/tags/travis-ci.md>), [vercel](<https://devfeed.tech/tags/vercel.md>)

### AI overview

The article explains how shared secrets in CI systems and CD pipelines can enable attackers to access production systems and steal customer data. It discusses replacing long-term shared secrets with short-lived, scoped certificates.

### Source excerpt

Shared secrets in CI systems like GitHub Actions and CircleCI pose serious risks. Hackers can exploit secrets to access production systems and steal information.

## Apollo Changelog: March 6, 2023

DevFeed: [Apollo Changelog: March 6, 2023](<https://devfeed.tech/articles/apollo-changelog-march-6-2023-23167.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/apollo-changelog-march-6-2023>)

Author: Dylan Anthony

Published: 2023-03-06T19:38:51Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [changelog](<https://devfeed.tech/topics/changelog.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [apollo-client](<https://devfeed.tech/topics/apollo-client.md>), [CircleCI](<https://devfeed.tech/topics/circleci.md>), [monorepo](<https://devfeed.tech/topics/monorepo.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Terraform](<https://devfeed.tech/topics/terraform.md>)

Tags: [apollo-client](<https://devfeed.tech/tags/apollo-client.md>), [changelog](<https://devfeed.tech/tags/changelog.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [community](<https://devfeed.tech/tags/community.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [monorepo](<https://devfeed.tech/tags/monorepo.md>), [news](<https://devfeed.tech/tags/news.md>), [terraform](<https://devfeed.tech/tags/terraform.md>)

### AI overview

The March 6, 2023 Apollo Changelog highlights Apollo GraphOS monorepo deployment work using CircleCI, Kotlin, and Terraform; upcoming Rust and TypeScript subgraph content; GraphQL documentation updates; new videos; Kotlin client guidance; and several Apollo tooling releases and improvements.

### Source excerpt

Welcome back to the Apollo Changelog. After taking a week off, we're back with a fresh batch of news for you! A glimpse into Apollo's monorepo Ever wonder how GraphOS works under the hood? A big chunk of it lives in a monorepo that Apollo engineer Ryan Wilcox has shared details about in a recent blog post. Check out "How we deploy the Apollo GraphOS monorepo" to learn how we use CircleCI, Kotlin, Terraform, and more!

## How we deploy the Apollo GraphOS monorepo

DevFeed: [How we deploy the Apollo GraphOS monorepo](<https://devfeed.tech/articles/how-we-deploy-the-apollo-graphos-monorepo-23392.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/how-we-deploy-the-apollo-graphos-monorepo>)

Author: Ryan Wilcox

Published: 2023-02-23T11:32:34Z

Content type: tutorial

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [monorepo](<https://devfeed.tech/topics/monorepo.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [CircleCI](<https://devfeed.tech/topics/circleci.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>)

Tags: [circleci](<https://devfeed.tech/tags/circleci.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [graphos](<https://devfeed.tech/tags/graphos.md>), [guide](<https://devfeed.tech/tags/guide.md>), [monorepo](<https://devfeed.tech/tags/monorepo.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

Apollo describes how it moved deployment of its Apollo GraphOS monorepo to continuous deployment in its staging environment using CircleCI. The article outlines the workflow triggered when developers push, approve, and merge code, including CircleCI dynamic configuration and change-scope detection.

### Source excerpt

Did you know that the majority of Apollo GraphOS's features are shipped via a monorepo? Yes, these mythic beasts still roam the earth. Ours is a humble but temperamental creature that, until recently, required Apollo engineers to do a lot of manual deployment to get the fleet entirely rolled. This year our team undertook the effort to get things continuously deployed to our staging environment using our continuous integration (CI) provider, CircleCI.

## Searching for RH Counterexamples -- Productionizing

DevFeed: [Searching for RH Counterexamples -- Productionizing](<https://devfeed.tech/articles/searching-for-rh-counterexamples-productionizing-40445.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2021/03/06/searching-for-rh-counterexamples-productionizing/>)

Published: 2021-03-06T10:08:59Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [CI/CD](<https://devfeed.tech/topics/cicd.md>), [CircleCI](<https://devfeed.tech/topics/circleci.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [scaling](<https://devfeed.tech/topics/scaling.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [containers](<https://devfeed.tech/tags/containers.md>), [coverage](<https://devfeed.tech/tags/coverage.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [github](<https://devfeed.tech/tags/github.md>)

### AI overview

A tutorial on productionizing an application that searches for counterexamples to the Riemann Hypothesis. It covers automated tests for pull requests, error handling, cleanup after failed worker jobs, type-hint and test-coverage checks, static analysis, failure alerting, and automated updates, using CircleCI and containers.

### Source excerpt

We're ironically searching for counterexamples to the Riemann Hypothesis. Setting up Pytest Adding a Database Search Strategies Unbounded integers Deploying with Docker Performance Profiling Scaling up In the last article we rearchitected the application so that we could run as many search instances as we want in parallel, and speed up the application by throwing more compute resources at the problem. This is good, but comes with a cost. The complexity of this new architecture requires us to manage many different containers and AWS instances.

## Aircall Journey to Android App Bundle

DevFeed: [Aircall Journey to Android App Bundle](<https://devfeed.tech/articles/aircall-journey-to-android-app-bundle-25946.md>)

Original publisher: [Read original article](<https://medium.com/inside-aircall/aircall-journey-to-android-app-bundle-14d0df0d0ea7?source=rss-cbfc736ddcd3------2>)

Author: Julien Salvi

Published: 2021-02-18T15:12:51Z

Content type: tutorial

Language: en

Sources: [Stories by Julien Salvi on Medium](<https://devfeed.tech/sources/stories-by-julien-salvi-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [APK](<https://devfeed.tech/topics/apk.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [CircleCI](<https://devfeed.tech/topics/circleci.md>), [feature flags](<https://devfeed.tech/topics/feature-flags.md>), [ci](<https://devfeed.tech/topics/ci.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-bundle](<https://devfeed.tech/tags/android-app-bundle.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [apk](<https://devfeed.tech/tags/apk.md>), [ci](<https://devfeed.tech/tags/ci.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [feature-flags](<https://devfeed.tech/tags/feature-flags.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [play-store](<https://devfeed.tech/tags/play-store.md>)

### AI overview

Aircall describes migrating its Android app from APK distribution to Android App Bundle to deliver optimized APKs. The article covers APK size reduction, language, density, and ABI splits, Gradle configuration, and planned Play Feature Delivery, with CircleCI and fastlane mentioned for release automation.

### Source excerpt

A couple months, we decided to use Android App Bundle (AAB) to distribute Aircall's Android app in Play Store. After analyzing the Aircall Android application package (APK), we found we could deliver optimized APKs to our users -- an overall size reduction of 60%! In this article, we are going to expose our journey to Android App Bundle from our own motivations to the development within the application and the CI with CircleCI and fastlane to release on the Play Store. Why move to App Bundle? Moving to App Bundle had many advantages. The first and main reason was the APK size optimization, to deliver only what the user needs. After looking at our application file, we found that we embedded all native libraries (.so files) of all supported architectures! We could have used the abi split in our main build.gradle but we would have managed 4 APKs with different version code. We also saw we could reduce the resource assets to match the density of the device where the app is installed. Here is what the Aircall universal APK looks like on the inside: APK analysis with Android Studio Optimizing size was not the only advantage we saw. Migrating to AAB will allow us (a little bit) to save the planet! Indeed, with all the MB saved from the downloads and updates, we are using less storage space and consuming fewer energy resources. You can see our MAD Score below. If it hits 1 million downloads we could save 22 TB of data -- really a huge impact. MAD Score data from the Aircall project We were also excited by our future ability to enable Play Feature Delivery to push features to specific users. Since we are already using feature flags inside our applications, this would let us develop features on-the-go for our users. Gradle configuration Moving to AAB was a very smooth process and did not require a lot of configuration code. To replicate this move, on your build.gradle of your application, add the following block to build an AAB file. You will be able to add the language, densit

## Hello8Ball: Exploring Coroutine Testing with a Kotlin Sampler App

DevFeed: [Hello8Ball: Exploring Coroutine Testing with a Kotlin Sampler App](<https://devfeed.tech/articles/hello8ball-32055.md>)

Original publisher: [Read original article](<https://www.maiatoday.net/p/hello8ball/>)

Published: 2019-11-23T21:36:11Z

Content type: tutorial

Language: en

Sources: [maiatoday](<https://devfeed.tech/sources/maiatoday.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [test](<https://devfeed.tech/topics/test.md>), [CircleCI](<https://devfeed.tech/topics/circleci.md>), [test-coverage](<https://devfeed.tech/topics/test-coverage.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [circleci](<https://devfeed.tech/tags/circleci.md>), [code](<https://devfeed.tech/tags/code.md>), [code-coverage](<https://devfeed.tech/tags/code-coverage.md>), [coroutine-testing](<https://devfeed.tech/tags/coroutine-testing.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [detekt](<https://devfeed.tech/tags/detekt.md>), [jacoco](<https://devfeed.tech/tags/jacoco.md>), [kotlinx](<https://devfeed.tech/tags/kotlinx.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

Hello8Ball is a toy sampler app for exploring coroutine testing in Kotlin. It simulates an 8 Ball and includes examples involving network calls, calculations, password generation, synonym lookup, and prime-number checks. The repository includes tests using kotlinx-coroutine-test, CircleCI test execution, detekt, JaCoCo coverage, and a branch converted to JUnit 5.

### Source excerpt

A sampler app to explore Coroutine testing. This is a toy app that simulates an 8 Ball. It can answer questions, find synonmyms, generate a password or check if a number is prime. It was created to make a situation where it makes sense to use coroutines to e.g. go on the network or make a calculation. Then I added tests for all the pieces using kotlinx-coroutine-test. As a bonus the repo is set up to run the tests on CircleCi. It has detekt setup and jacoco code coverage. There is also a branch where all the tests are converted to junit5. Devfest 2019 video This is the companion repo to the KotlinEveryWhereZA 2019 and DevFestZa 2019 talk. Slides are in the repo. code

## Hugo, Firebase Hosting and CircleCI

DevFeed: [Hugo, Firebase Hosting and CircleCI](<https://devfeed.tech/articles/hugo-firebase-hosting-and-circleci-25651.md>)

Original publisher: [Read original article](<https://adambennett.dev/2019/04/hugo-firebase-hosting-and-circleci/>)

Published: 2019-04-28T09:34:57Z

Content type: tutorial

Language: en

Sources: [Posts on Adam Bennett](<https://devfeed.tech/sources/posts-on-adam-bennett.md>)

Topics: [Hugo](<https://devfeed.tech/topics/hugo.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [hosting](<https://devfeed.tech/topics/hosting.md>), [CircleCI](<https://devfeed.tech/topics/circleci.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [android](<https://devfeed.tech/tags/android.md>), [blog](<https://devfeed.tech/tags/blog.md>), [career](<https://devfeed.tech/tags/career.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [compose](<https://devfeed.tech/tags/compose.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [development](<https://devfeed.tech/tags/development.md>), [domain](<https://devfeed.tech/tags/domain.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [finance](<https://devfeed.tech/tags/finance.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [functional](<https://devfeed.tech/tags/functional.md>), [google](<https://devfeed.tech/tags/google.md>), [growth](<https://devfeed.tech/tags/growth.md>), [guides](<https://devfeed.tech/tags/guides.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [java](<https://devfeed.tech/tags/java.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [money](<https://devfeed.tech/tags/money.md>), [opinions](<https://devfeed.tech/tags/opinions.md>), [software](<https://devfeed.tech/tags/software.md>), [startups](<https://devfeed.tech/tags/startups.md>), [thoughts](<https://devfeed.tech/tags/thoughts.md>), [training](<https://devfeed.tech/tags/training.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

A practical guide to setting up a Hugo blog with Firebase Hosting and CircleCI, including domain configuration and DNS verification through Google Domains.

### Source excerpt

Domain setup First thing's first - go buy your domain on domains.google.com. They're only GBP 10 a year, but if I remember correctly there's a GBP 120 initial fee. Your mileage may vary depending on the popularity of your domain name. The process is pretty user friendly, even for a web noob like myself.

## Continuous Delivery for Android

DevFeed: [Continuous Delivery for Android](<https://devfeed.tech/articles/continuous-delivery-for-android-30587.md>)

Original publisher: [Read original article](<https://ryanharter.com/blog/2018/05/continuous-delivery-for-android/>)

Published: 2018-05-24T20:15:03Z

Content type: tutorial

Language: en

Sources: [Blogs on Ryan Harter](<https://devfeed.tech/sources/blogs-on-ryan-harter.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [CircleCI](<https://devfeed.tech/topics/circleci.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Jenkins](<https://devfeed.tech/topics/jenkins.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [continuous-delivery](<https://devfeed.tech/tags/continuous-delivery.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [jenkins](<https://devfeed.tech/tags/jenkins.md>), [releases](<https://devfeed.tech/tags/releases.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

An Android developer describes moving from continuous integration to continuous delivery, where app changes are automatically built and released to appropriate channels. The article discusses release targets, separate debug and release builds, and a CircleCI 2.0 workflow, with Jenkins mentioned as a previous option.

### Source excerpt

For a long time I've been in search of a good continuous integration server for Android. I've even written about one that I used years ago, which is no longer suited to Android development, in my opinion. As the Android community has grown, so has the wealth of tools available. In that time I've also moved from simply wanting continuous integration, to wanting continuous delivery. Continuous Delivery you say? Continuous delivery builds on continuous integration, but instead of just testing your source code when you commit, it is also published to the appropriate channels. This takes the burden from the developer by automatically releasing a new version of the app any time changes are made, and also creates a reliable, repeatable release pipeline.

## Setting up a Go build with Glide on CircleCI

DevFeed: [Setting up a Go build with Glide on CircleCI](<https://devfeed.tech/articles/setting-up-a-go-build-with-glide-on-circleci-37732.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/glide-circleci/>)

Author: Carlos Alexandro Becker

Published: 2016-08-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [CircleCI](<https://devfeed.tech/topics/circleci.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [go](<https://devfeed.tech/tags/go.md>)

### AI overview

A quick tutorial on setting up a Go build with Glide on CircleCI. It provides configuration tips and notes that import paths may need adjustment for the project repository.

### Source excerpt

I've lost a considerable amount of time trying to bind those things together, so I decided to write this quick post about it, so others could also benefit from it.

## Continuous Delivery with GitHub, CircleCI, Docker and AWS Elastic Beanstalk

DevFeed: [Continuous Delivery with GitHub, CircleCI, Docker and AWS Elastic Beanstalk](<https://devfeed.tech/articles/continuous-delivery-with-github-circleci-docker-and-aws-elastic-beanstalk-37687.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/cd-github-circleci-docker-beanstalk/>)

Author: Carlos Alexandro Becker

Published: 2015-09-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Continuous Delivery (CD)](<https://devfeed.tech/topics/continuous-delivery.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [CircleCI](<https://devfeed.tech/topics/circleci.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Docker Hub](<https://devfeed.tech/topics/docker-hub.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Environment Variables](<https://devfeed.tech/topics/environment-variables.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [continuous-delivery](<https://devfeed.tech/tags/continuous-delivery.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-hub](<https://devfeed.tech/tags/docker-hub.md>), [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [github](<https://devfeed.tech/tags/github.md>)

### AI overview

This tutorial explains a continuous delivery setup for a Go service using GitHub, CircleCI, Docker, Docker Hub, and Amazon Elastic Beanstalk. Commits pushed to the site repository are built into Docker images, tagged with the CircleCI build number, pushed to Docker Hub, and deployed to production so deployed commits can be traced through the image and build tags.

### Source excerpt

This is just a quick overview of how I did it in antibody's homepage.