# continuous integration

Published articles for continuous integration.

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

## Checks for safer review of rapidly generated TypeScript and React frontend code

DevFeed: [Checks for safer review of rapidly generated TypeScript and React frontend code](<https://devfeed.tech/articles/10-anti-ai-slop-moves-for-frontend-projects-going-faster-than-humans-can-review-19790.md>)

Original publisher: [Read original article](<https://evilmartians.com/chronicles/ten-anti-ai-slop-moves-for-frontend-projects-going-faster-than-humans-can-review>)

Author: Travis Turner (richardturner@evilmartians.com)

Published: 2026-09-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Evil Martians](<https://devfeed.tech/sources/evil-martians.md>)

Topics: [Front end](<https://devfeed.tech/topics/frontend.md>), [React](<https://devfeed.tech/topics/react.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [API](<https://devfeed.tech/topics/api.md>), [mutation-testing](<https://devfeed.tech/topics/mutation-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [agent-experience](<https://devfeed.tech/tags/agent-experience.md>), [agentic-development](<https://devfeed.tech/tags/agentic-development.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [api](<https://devfeed.tech/tags/api.md>), [code](<https://devfeed.tech/tags/code.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [dx](<https://devfeed.tech/tags/dx.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [llms](<https://devfeed.tech/tags/llms.md>), [mutation-testing](<https://devfeed.tech/tags/mutation-testing.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [react](<https://devfeed.tech/tags/react.md>), [testing](<https://devfeed.tech/tags/testing.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

This article presents ten checks for making rapidly generated TypeScript and React frontend code safer to trust and cheaper to review. It covers API contracts, generated types, boundary validation, mutation testing, dead-code detection, and mandatory checks.

### Source excerpt

Ten checks that catch what AI-written frontend code hides: contract codegen, boundary linting, mutation testing, and dead-code detectors.

## New: Finish Cypress Cloud runs faster with the Run Completion API

DevFeed: [New: Finish Cypress Cloud runs faster with the Run Completion API](<https://devfeed.tech/articles/new-finish-cypress-cloud-runs-faster-with-the-run-completion-api-12613.md>)

Original publisher: [Read original article](<https://www.cypress.io/blog/new-finish-cypress-cloud-runs-faster-with-the-run-completion-api/>)

Published: 2026-08-26T18:51:15Z

Content type: article

Language: en

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

Topics: [Cypress](<https://devfeed.tech/topics/cypress.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [API](<https://devfeed.tech/topics/api.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [api](<https://devfeed.tech/tags/api.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [cypress](<https://devfeed.tech/tags/cypress.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

The article introduces the Run Completion API for Cypress Cloud. It lets a run finalize immediately after test recording ends instead of waiting for additional test groups, helping workflows that depend on finalized pass/fail results complete sooner.

### Source excerpt

Starting now, all Cypress Cloud plans can use the Run Completion API, allowing the Cypress Cloud run to finalize immediately at the end of test recoding, instead of staying open for new tests. Here's why that's important and how it can save you time. Cloud runs can have multiple groups of tests Cypress Cloud runs are often made up of many isolated cypress run groups. These may represent things like: * separate parallel machines * different browsers running the tests * different testing t

## Refactoring a SQL Table at Scale: Lessons from Harness CI

DevFeed: [Refactoring a SQL Table at Scale: Lessons from Harness CI](<https://devfeed.tech/articles/refactoring-a-sql-table-at-scale-lessons-from-harness-ci-13449.md>)

Original publisher: [Read original article](<https://www.harness.io/blog/lessons-from-refactoring-at-scale>)

Author: Moshe Tsur

Published: 2026-08-06T00:00:00Z

Content type: article

Language: en

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

Topics: [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [API](<https://devfeed.tech/topics/api.md>), [ci](<https://devfeed.tech/topics/ci.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [harness](<https://devfeed.tech/tags/harness.md>), [latency](<https://devfeed.tech/tags/latency.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [schema](<https://devfeed.tech/tags/schema.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

Harness describes refactoring a flat SQL table used for CI test results into a normalized schema. The article reports reducing storage per row from 400 bytes to 28 bytes and making API latency constant at any scale.

### Source excerpt

How Harness refactored a flat SQL table into a normalized schema, cutting storage per row from 400 bytes to 28 bytes and making API latency constant at any scal | Blog

## The Electron browser is being deprecated in Cypress

DevFeed: [The Electron browser is being deprecated in Cypress](<https://devfeed.tech/articles/the-electron-browser-is-being-deprecated-in-cypress-12615.md>)

Original publisher: [Read original article](<https://www.cypress.io/blog/the-electron-browser-is-being-deprecated-in-cypress/>)

Published: 2026-07-10T15:15:58Z

Content type: article

Language: en

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

Topics: [Cypress](<https://devfeed.tech/topics/cypress.md>), [Electron](<https://devfeed.tech/topics/electron.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [Chromium](<https://devfeed.tech/topics/chromium.md>), [Continuous integration](<https://devfeed.tech/topics/continuous-integration.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [chromium](<https://devfeed.tech/tags/chromium.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [cypress](<https://devfeed.tech/tags/cypress.md>), [edge](<https://devfeed.tech/tags/edge.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Cypress is deprecating its bundled Electron browser starting with Cypress 16.0.0 and plans to remove it in a future major version. The article explains that tests can produce inconsistent results in Electron compared with users' installed browsers, and recommends moving local and CI runs to installed browsers such as Chrome for Testing, Chrome, Firefox, or Edge.

### Source excerpt

We're deprecating the Electron browser in Cypress, starting in Cypress 16.0.0, with removal in a future major version. After years of seeing inconsistent results between Electron and the browsers people actually use, we are standardizing on installed browsers for more reliable test results.

## Tuning Android build nodes for maximum throughput

DevFeed: [Tuning Android build nodes for maximum throughput](<https://devfeed.tech/articles/tuning-android-build-nodes-for-maximum-throughput-20464.md>)

Original publisher: [Read original article](<https://eng.wealthfront.com/2026/06/25/tuning-android-build-nodes-for-maximum-throughput/>)

Author: Chris Mathew

Published: 2026-06-25T15:29:45Z

Content type: tutorial

Language: en

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

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>), [Android](<https://devfeed.tech/topics/android.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [caching](<https://devfeed.tech/tags/caching.md>), [ci](<https://devfeed.tech/tags/ci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [ec2](<https://devfeed.tech/tags/ec2.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [performance](<https://devfeed.tech/tags/performance.md>), [wealthfront-engineering](<https://devfeed.tech/tags/wealthfront-engineering.md>)

### AI overview

This article explains how Wealthfront's Android team tuned Gradle for build workloads on Amazon m7i.8xlarge EC2 instances. It covers Gradle daemon configuration, JVM memory settings, parallel execution, build caching, and the choice to use single-use daemons for CI builds.

### Source excerpt

Introduction Our Android team uses Gradle as our build tool of choice. Gradle offers lots of options for tuning its resource consumption, giving engineers an opportunity to optimize performance for running tasks on well-known hardware. In this post, we'll explore how the team tuned our Gradle setup for Amazon's m7i.8xlarge EC2 instances. General concepts Before... Read more

## Trust Factory

DevFeed: [Trust Factory](<https://devfeed.tech/articles/trust-factory-39985.md>)

Original publisher: [Read original article](<https://newsletter.kentbeck.com/p/trust-factory>)

Author: Kent Beck

Published: 2026-06-02T13:33:57Z

Content type: opinion

Language: en

Sources: [Software Design: Tidy First?](<https://devfeed.tech/sources/software-design-tidy-first.md>)

Topics: [trust](<https://devfeed.tech/topics/trust.md>), [Code](<https://devfeed.tech/topics/code.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [observability](<https://devfeed.tech/tags/observability.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [testing](<https://devfeed.tech/tags/testing.md>), [trust](<https://devfeed.tech/tags/trust.md>)

### AI overview

This commentary argues that software development practices can function as a "trust factory." It connects programmer testing, pairing, continuous integration, weekly planning, customer involvement, continuous deployment, refactoring, and observability with building trust among developers, customers, and teams.

### Source excerpt

"We're accumulating code faster than we are accumulating trust." Sometimes a phrase just hits.

## One Decade Later: Revisiting Five Front-End Kung Fu Moves

DevFeed: [One Decade Later: Revisiting Five Front-End Kung Fu Moves](<https://devfeed.tech/articles/one-decade-later-revisiting-five-front-end-kung-fu-moves-27460.md>)

Original publisher: [Read original article](<https://ariya.io/2026/04/one-decade-later-revisiting-five-front-end-kung-fu-moves/>)

Published: 2026-04-30T23:26:34Z

Content type: opinion

Language: en

Sources: [Ariya Hidayat](<https://devfeed.tech/sources/ariya-hidayat.md>)

Topics: [Front end](<https://devfeed.tech/topics/frontend.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [test-coverage](<https://devfeed.tech/topics/test-coverage.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [ESLint](<https://devfeed.tech/topics/eslint.md>), [Git](<https://devfeed.tech/topics/git.md>), [web-standards](<https://devfeed.tech/topics/web-standards.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [code-coverage](<https://devfeed.tech/tags/code-coverage.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [coverage](<https://devfeed.tech/tags/coverage.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [eslint](<https://devfeed.tech/tags/eslint.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [front-end](<https://devfeed.tech/tags/front-end.md>), [git-hooks](<https://devfeed.tech/tags/git-hooks.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [testing](<https://devfeed.tech/tags/testing.md>), [web-standards](<https://devfeed.tech/tags/web-standards.md>)

### AI overview

A retrospective revisits front-end engineering techniques presented at a JavaScript meetup ten years earlier. It discusses git hooks, code complexity, code coverage, and cross-browser testing, explaining how common tools and modern workflows have changed their practical use.

### Source excerpt

Exactly ten years ago, I gave a talk at the SF JavaScript meetup titled 5 Kung Fu Moves for Front-End Heroes. A full decade later, I found myself wondering: are these techniques still the secret sauce for modern front-end engineering, or have they been rendered obsolete by time?

## Leveraging AI to build a faster iOS CI system

DevFeed: [Leveraging AI to build a faster iOS CI system](<https://devfeed.tech/articles/leveraging-ai-to-build-a-faster-ios-ci-system-24728.md>)

Original publisher: [Read original article](<https://medium.com/thumbtack-engineering/leveraging-ai-to-build-a-faster-ios-ci-system-75ec9ceee892?source=rss----1199c607a13f---4>)

Author: Muhieddine EL Kaissi

Published: 2026-04-21T18:16:01Z

Content type: article

Language: en

Sources: [Thumbtack Engineering - Medium](<https://devfeed.tech/sources/thumbtack-engineering-medium.md>)

Topics: [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-assisted-coding](<https://devfeed.tech/tags/ai-assisted-coding.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developer-productivity](<https://devfeed.tech/tags/developer-productivity.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Thumbtack describes Smart Test Selection, an iOS CI system that reduces pipeline time by running only tests relevant to each pull request. The article explains why parallelization stopped scaling, including node contention, large test suites, and slow snapshot and UI tests, while noting that AI-assisted coding could increase CI demand.

### Source excerpt

Every iOS pull request at Thumbtack used to wait 30 to 40 minutes for Continuous Integration (CI) -- sometimes over an hour on Fridays. We built Smart Test Selection (STS) to cut that in half. Here's how. I'm a Senior Software Engineer on the iOS Infrastructure team. We own the CI/CD pipelines, build tooling, and shared frameworks that keep Thumbtack's apps shipping reliably. We also build AI-powered developer tooling -- 35+ AI Agent Skills, MCP integrations for Jenkins, Figma, Firebase, and Xcode -- that help the broader iOS team ship faster. Over the past few quarters, we built Smart Test Selection (STS), a system that reduces CI time by running only the tests that matter for each pull request. Why Full-Suite Testing Stopped Scaling Before STS, we had already optimized CI through parallelization -- running consumer, pro, and shared framework tests on separate nodes, and splitting snapshot tests across multiple simulator clones. But parallelization hit a ceiling. The more nodes we spread CI across, the more engineers had to wait for free nodes, cancelling out the speed gains. Snapshot tests dominated the suite but couldn't be split further without diminishing returns, and UI tests were inherently slow per-test. We needed a fundamentally different approach: run fewer tests, not run the same tests faster. Every iOS PR ran the full test suite for each affected app. We have three main targets -- a consumer app, a pro app, and a shared framework -- totaling 1,500+ test classes. The pipeline already skipped unaffected apps (a change to the consumer app would not run pro app tests), but within each affected app, every test ran regardless of what specifically changed. A one-line bug fix in one screen would trigger all 400+ tests for that entire app. This was becoming unsustainable. Human-generated code was already putting CI at the limit due to ever-increasing code size and test counts. We had increased our CI node count multiple times to keep up with demand, but each expansion

## The Design Process and Agile Development: Part 2 -- Collaborative Activities

DevFeed: [The Design Process and Agile Development: Part 2 -- Collaborative Activities](<https://devfeed.tech/articles/the-design-process-and-agile-development-part-2-collaborative-activities-33282.md>)

Original publisher: [Read original article](<https://8thlight.com/insights/the-design-process-and-agile-development-part-2-collaborative-activities>)

Author: Daisy Mølving

Published: 2026-01-16T06:00:00Z

Content type: tutorial

Language: en

Sources: [8th Light Insights](<https://devfeed.tech/sources/8th-light-insights.md>)

Topics: [Agile](<https://devfeed.tech/topics/agile.md>), [User experience (UX)](<https://devfeed.tech/topics/ux.md>), [Development](<https://devfeed.tech/topics/development.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [agile](<https://devfeed.tech/tags/agile.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [design](<https://devfeed.tech/tags/design.md>), [development](<https://devfeed.tech/tags/development.md>), [experiential-design](<https://devfeed.tech/tags/experiential-design.md>), [teams](<https://devfeed.tech/tags/teams.md>), [testing](<https://devfeed.tech/tags/testing.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

This article explains how UX designers, product owners, and software developers can collaborate during an agile design process. It focuses on continuous discovery through stakeholder interviews, competitive and analogous research, user interviews, testing, and collaboration with developers on codebase, infrastructure, feasibility, and timelines.

### Source excerpt

Updated 1/16/2026. Originally published 12/10/2024 As we talked about in Part 1 of this blog series, The Design Process and Agile Development: Part 1 -- Design Is Collaborative, the design process provides teams with the opportunity to join forces, paving the way for an integrated team of user experience (UX) designers, product owners, and agile software development to create a successful product. So where do you begin? You have a new project and an integrated team. You know that success can be achieved in close collaboration between your team members, each representing deep expertise in desirability, viability, and feasibility. But you need to determine which activities are most profitable for the team to put their heads together on and what their responsibilities should be. Find Out Together Finding Out is where it all starts, but it most certainly doesn't only happen at the start! We 'find out' in continuous cycles throughout the project, not just from our users, but also from our stakeholders and product and development teammates. After all, though the end product is ultimately for our end users, design is also influenced by viability, or the business, and feasibility, or the developers. So it makes sense to 'find out' collaboratively. You can do this through stakeholder interviews, competitive analysis and analogous research, user interviews and testing, and continuous integration (CI) tools. Stakeholder Interviews Stakeholder interviews are an early, integral step for determining what your stakeholders care about -- their hopes and fears, past project experiences that might drive their decision-making, key metrics they need to hit, and any assumptions they may have. Not only will you build rapport, you'll also learn how to engage your stakeholders through the design process. I've experienced that not all stakeholders have immediate faith in design, so understanding how they measure success and engaging with their success criteria throughout your work can be cruc

## Heroku AppLink: Now Using JWT-Based Authorization for Salesforce

DevFeed: [Heroku AppLink: Now Using JWT-Based Authorization for Salesforce](<https://devfeed.tech/articles/heroku-applink-now-using-jwt-based-authorization-for-salesforce-26373.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/applink-now-uses-jwt-based-authorization-salesforce/>)

Author: Vivek Viswanathan

Published: 2025-12-11T16:00:53Z

Content type: release

Language: en

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

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Security](<https://devfeed.tech/topics/security.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [OAuth](<https://devfeed.tech/topics/oauth.md>)

Tags: [applink](<https://devfeed.tech/tags/applink.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [credentials](<https://devfeed.tech/tags/credentials.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [news](<https://devfeed.tech/tags/news.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [security](<https://devfeed.tech/tags/security.md>), [tokens](<https://devfeed.tech/tags/tokens.md>)

### AI overview

Heroku AppLink now supports JWT-based authorization for Salesforce integrations. The update enables machine-to-machine authorization for automated CI/CD setup and reduces reliance on long-lived secrets and static credentials by providing on-demand tokens.

### Source excerpt

Modern Continuous Integration/Continuous Deployment (CI/CD) pipelines demand machine-to-machine authorization, but traditional web-based flow requires manual steps and often rely on static credentials; a major security risk. Heroku AppLink now uses JWT Authorization to solve both: enabling automated setup and eliminating long-lived secrets. In today's evolving threat landscape, security attacks increasingly exploit systems that rely on [...] The post Heroku AppLink: Now Using JWT-Based Authorization for Salesforce appeared first on Heroku.

## Heroku GitHub Enterprise Integration enters closed pilot with GitHub App-based connections

DevFeed: [Heroku GitHub Enterprise Integration enters closed pilot with GitHub App-based connections](<https://devfeed.tech/articles/heroku-github-enterprise-integration-unlocking-full-continuous-delivery-for-enterprise-customers-26405.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/github-enterprise-integration-full-continuous-delivery/>)

Author: Alberto Sigismondi

Published: 2025-12-10T16:00:09Z

Content type: release

Language: en

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

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Continuous Delivery (CD)](<https://devfeed.tech/topics/continuous-delivery.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [continuous-delivery](<https://devfeed.tech/tags/continuous-delivery.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [credentials](<https://devfeed.tech/tags/credentials.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-enterprise](<https://devfeed.tech/tags/heroku-enterprise.md>), [heroku-pipelines](<https://devfeed.tech/tags/heroku-pipelines.md>), [integration](<https://devfeed.tech/tags/integration.md>), [news](<https://devfeed.tech/tags/news.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

Heroku announces a closed pilot of its GitHub Enterprise Integration for Heroku Enterprise customers. The integration uses a dedicated GitHub App-based service identity instead of personal OAuth tokens to connect GitHub Enterprise Server or Cloud with Heroku deployment pipelines.

### Source excerpt

We're excited to announce a significant enhancement to how Heroku Enterprise customers connect their deployment pipelines to GitHub Enterprise Server (GHES) and GitHub Enterprise Cloud (GHEC). The new Heroku GitHub Enterprise Integration is now available in a closed pilot, offering a more secure, robust, and permanent connection between your code repositories and your Heroku apps. [...] The post Heroku GitHub Enterprise Integration: Unlocking Full Continuous Delivery for Enterprise Customers appeared first on Heroku.

## Speeding up Materialize CI

DevFeed: [Speeding up Materialize CI](<https://devfeed.tech/articles/speeding-up-materialize-ci-30835.md>)

Original publisher: [Read original article](<https://hookrace.net/blog/speeding-up-materialize-ci/>)

Published: 2025-08-07T22:00:00Z

Content type: article

Language: en

Sources: [Dennis Felsing](<https://devfeed.tech/sources/dennis-felsing.md>)

Topics: [ci](<https://devfeed.tech/topics/ci.md>), [test](<https://devfeed.tech/topics/test.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ci](<https://devfeed.tech/tags/ci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [developers](<https://devfeed.tech/tags/developers.md>), [integration](<https://devfeed.tech/tags/integration.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [programming](<https://devfeed.tech/tags/programming.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [test](<https://devfeed.tech/tags/test.md>), [tests](<https://devfeed.tech/tags/tests.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

The article describes how the Materialize team significantly sped up its continuous integration test pipeline in July, particularly for pull requests requiring a build and full test run. The effort aimed to reduce developer waiting time as tests and code had increased CI duration.

### Source excerpt

In the previous post I talked about how we test Materialize. This time I'll describe how I significantly sped up our Continuous Integration (CI) Test pipeline in July, especially for pull requests that require a build and full test run. The goal is to make developers more productive by reducing the time waiting for CI to complete. We always kept CI runtime in mind, but it still slowly crept up over the years through adding tests, the code itself growing larger, as well as hundreds of minor cuts adding up. Read the rest of the blog post over on the Materialize blog.

## Now in Android #120

DevFeed: [Now in Android #120](<https://devfeed.tech/articles/now-in-android-120-22674.md>)

Original publisher: [Read original article](<https://medium.com/androiddevelopers/now-in-android-120-76eb908b9a8c?source=rss----95b274b437c2---4>)

Author: Daniel Galpin

Published: 2025-08-06T21:01:41Z

Content type: article

Language: en

Sources: [Android Developers - Medium](<https://devfeed.tech/sources/android-developers-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Beta channel](<https://devfeed.tech/topics/beta-channel.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Google Play](<https://devfeed.tech/topics/google-play.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Image](<https://devfeed.tech/topics/image.md>)

Tags: [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [androidcanary](<https://devfeed.tech/tags/androidcanary.md>), [canary-release](<https://devfeed.tech/tags/canary-release.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [developer-preview](<https://devfeed.tech/tags/developer-preview.md>), [featured](<https://devfeed.tech/tags/featured.md>), [google-play](<https://devfeed.tech/tags/google-play.md>), [now-in-android](<https://devfeed.tech/tags/now-in-android.md>), [pixel](<https://devfeed.tech/tags/pixel.md>)

### AI overview

Now in Android #120 is a roundup of Android development updates covering the new Canary release channel, Agent Mode in Android Studio, Google Play changes including 16 KB Page Size requirements, Play Games updates, Android 16 devices, and Compose tips.

### Source excerpt

Canary Channel, Agentic AI in Android Studio, 16 KB Pages, Policy Changes, Compose Tips, Play Games Welcome to Now in Android, your ongoing guide to what's new and notable in the world of Android development. This edition features the Android platform Canary Channel, the first release of Agentic AI in Android Studio, Play updates including 16 KB Page Size requirements and other policy changes, new capabilities around one-time purchases, Play Games Services v2, and Google Play Games on PC, I/O recaps on AI and dev productivity, next gen Samsung devices running Android 16, Compose tips, and more. https://medium.com/media/2034f6e8beea3e321d4483d4ee77ebdf/hrefhttps://medium.com/media/0247cb404c27e0b8725bc258c35923bc/href Most of the content of this post is available in the form of a video or podcast, so feel free to watch or listen rather than read on. (Or do all three to help you remember! There won't be a quiz.) Evolving Android's early-access programs: Introducing the Canary channel 🐦 Android has introduced a new Canary release channel for its early-access programs, replacing the previous developer preview model. This channel provides earlier and more consistent access to in-development platform features throughout the year. The new Canary channel offers continuous, rolling over-the-air (OTA) updates for supported Pixel devices, addressing previous limitations where previews required manual flashing and the preview program ended once a platform version reached Beta, requiring manual flashing to enter it again for the next cycle. You can use the Canary channel to: Access new features and potential behavior changes in their earliest stages. Integrate builds into your Continuous Integration (CI) systems to identify app compatibility issues early. Download Canary SDKs through the SDK Manager and access builds via the Android Studio Canary channel for development and testing. The Canary channel operates in parallel with the existing Beta program. Canary builds are bleedin

## How we replaced the default K8s scheduler to optimize our Continuous Integration builds

DevFeed: [How we replaced the default K8s scheduler to optimize our Continuous Integration builds](<https://devfeed.tech/articles/how-we-replaced-the-default-k8s-scheduler-to-optimize-our-continuous-integration-builds-17678.md>)

Original publisher: [Read original article](<https://codefresh.io/blog/custom-k8s-scheduler-continuous-integration/>)

Author: Vadim Gusev

Published: 2025-07-07T11:57:20Z

Content type: article

Language: en

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

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [ci](<https://devfeed.tech/topics/ci.md>)

Tags: [clusters](<https://devfeed.tech/tags/clusters.md>), [codefresh](<https://devfeed.tech/tags/codefresh.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [devops](<https://devfeed.tech/tags/devops.md>), [glossary](<https://devfeed.tech/tags/glossary.md>), [k8s](<https://devfeed.tech/tags/k8s.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [product-and-tools](<https://devfeed.tech/tags/product-and-tools.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>)

### AI overview

Codefresh describes replacing the default Kubernetes scheduler for clusters running ephemeral Continuous Integration pipelines. The article explains how this workload differed from long-running applications and motivated a different approach to Kubernetes scheduling.

### Source excerpt

The default Kubernetes scheduler works great when your cluster is destined for long running applications. At Codefresh we use our Kubernetes clusters for running Continuous Integration pipelines which means our workloads are ephemeral (they are discarded when a pipeline has finished). This allowed us to look at the Kubernetes scheduler from a different perspective and [...] The post How we replaced the default K8s scheduler to optimize our Continuous Integration builds appeared first on Codefresh.

## Golang and Let's Encrypt: a free software story

DevFeed: [Golang and Let's Encrypt: a free software story](<https://devfeed.tech/articles/golang-and-let-s-encrypt-a-free-software-story-36217.md>)

Original publisher: [Read original article](<https://dotat.at/@/2025-06-28-boulder.html>)

Published: 2025-06-26T01:41:49Z

Content type: opinion

Language: en

Sources: [Tony Finch's blog](<https://devfeed.tech/sources/tony-finch-s-blog.md>)

Topics: [let's encrypt](<https://devfeed.tech/topics/let-s-encrypt.md>), [free software](<https://devfeed.tech/topics/free-software.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [CASE](<https://devfeed.tech/topics/casejs.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [golang](<https://devfeed.tech/tags/golang.md>), [let-s-encrypt](<https://devfeed.tech/tags/let-s-encrypt.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [review](<https://devfeed.tech/tags/review.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The author recounts fixing a Let's Encrypt Boulder bug involving mail-domain validation as a newcomer to Golang. They describe relying on Let's Encrypt's cloud test setup, submitting a small pull request, and seeing it merged into production within a few days.

### Source excerpt

Here's a story from nearly 10 years ago. the bug I think it was my friend Richard Kettlewell who told me about a bug he encountered with Let's Encrypt in its early days in autumn 2015: it was failing to validate mail domains correctly. the context At the time I had previously been responsible for Cambridge University's email anti-spam system for about 10 years, and in 2014 I had been given responsibility for Cambridge University's DNS. So I knew how Let's Encrypt should validate mail domains. Let's Encrypt was about one year old. Unusually, the code that runs their operations, Boulder, is free software and open to external contributors. Boulder is written in Golang, and I had not previously written any code in Golang. But its reputation is to be easy to get to grips with. So, in principle, the bug was straightforward for me to fix. How difficult would it be as a Golang newbie? And what would Let's Encrypt's contribution process be like? the hack I cloned the Boulder repository and had a look around the code. As is pretty typical, there are a couple of stages to fixing a bug in an unfamiliar codebase: work out where the problem is try to understand if the obvious fix could be better In this case, I remember discovering a relatively substantial TODO item that intersected with the bug. I can't remember the details, but I think there were wider issues with DNS lookups in Boulder. I decided it made sense to fix the immediate problem without getting involved in things that would require discussion with Let's Encrypt staff. I faffed around with the code and pushed something that looked like it might work. A fun thing about this hack is that I never got a working Boulder test setup on my workstation (or even Golang, I think!) - I just relied on the Let's Encrypt cloud test setup. The feedback time was very slow, but it was tolerable for a simple one-off change. the fix My pull request was small, +48-14. After a couple of rounds of review and within a few days, it was merged

## Scaling Technology with Architectural Principles

DevFeed: [Scaling Technology with Architectural Principles](<https://devfeed.tech/articles/scaling-technology-with-architectural-principles-40097.md>)

Original publisher: [Read original article](<https://www.rea-group.com/about-us/news-and-insights/blog/scaling-technology-with-architectural-principles/>)

Author: Shane Gibb

Published: 2025-01-08T01:18:36Z

Content type: article

Language: en

Sources: [REA Group](<https://devfeed.tech/sources/rea-group.md>)

Topics: [scaling](<https://devfeed.tech/topics/scaling.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Development](<https://devfeed.tech/topics/development.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>), [Design system](<https://devfeed.tech/topics/design-system.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [scaling](<https://devfeed.tech/tags/scaling.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

REA Group describes how architectural principles developed through 25 years of growth guide its software engineering practices, including decision-making, system resilience, team agility, platform reuse, and continuous deployment.

### Source excerpt

REA Group, a global company with 1,000+ digital product builders, developed architectural principles from 25 years of growth.

## On Long Term Software Development

DevFeed: [On Long Term Software Development](<https://devfeed.tech/articles/on-long-term-software-development-36504.md>)

Original publisher: [Read original article](<https://berthub.eu/articles/posts/on-long-term-software-development/>)

Published: 2024-12-22T17:00:00Z

Content type: opinion

Language: en

Sources: [Bert Hubert's writings](<https://devfeed.tech/sources/bert-hubert-s-writings.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Software](<https://devfeed.tech/topics/software.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Esolang](<https://devfeed.tech/topics/esolang.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [development](<https://devfeed.tech/tags/development.md>), [framework](<https://devfeed.tech/tags/framework.md>), [mastodon](<https://devfeed.tech/tags/mastodon.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

An opinion article reflecting on long-term software development through a talk about the Dutch Electoral Board's open-source Abacus vote tabulation software. It contrasts continuously deployed, heavily tested services with safety-critical software that must remain stable for decades, and discusses dependencies, programming languages, and frameworks as long-term design choices.

### Source excerpt

Recently the Dutch Electoral Board (where I am also a very part time advisor) invited me to do a talk reflecting on their open source Abacus vote tabulation software. Much software is now provided as a service, and is typically deployed continuously (CD, continuous deployment), surrounded by enough automated testing (CI, continuous integration) that we can be reasonably sure that a new revision is likely to at least work to some extent.

## Enforce Flexible Governance in GraphOS using Custom Checks

DevFeed: [Enforce Flexible Governance in GraphOS using Custom Checks](<https://devfeed.tech/articles/enforce-flexible-governance-in-graphos-using-custom-checks-23286.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/enforce-flexible-governance-in-graphos-using-custom-checks>)

Author: Samuel Collard

Published: 2024-11-26T12:00:00Z

Content type: article

Language: en

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

Topics: [GraphOS](<https://devfeed.tech/topics/graphos.md>), [API Governance](<https://devfeed.tech/topics/api-governance.md>), [API Platform](<https://devfeed.tech/topics/api-platform.md>)

Tags: [api-governance](<https://devfeed.tech/tags/api-governance.md>), [api-platform](<https://devfeed.tech/tags/api-platform.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [graphos](<https://devfeed.tech/tags/graphos.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [schema](<https://devfeed.tech/tags/schema.md>), [security-policies](<https://devfeed.tech/tags/security-policies.md>)

### AI overview

Apollo GraphOS supports custom schema checks that let organizations add business logic, security policies, and company-specific rules to the existing schema check workflow. The article introduces the governance use case and begins describing how to configure a custom check through an HTTPS endpoint.

### Source excerpt

Apollo GraphOS now supports custom schema checks, a new feature that addresses API platform teams' demand for enhanced schema governance capabilities. This functionality allows organizations to integrate their own business logic, security policies, and rules into Apollo's existing schema check workflow, ensuring that every schema change adheres to company-specific standards.

## Testing applications with Pytest and NuttX

DevFeed: [Testing applications with Pytest and NuttX](<https://devfeed.tech/articles/testing-applications-with-pytest-and-nuttx-13669.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2024/10/pytest-testing-with-nuttx/>)

Author: John Lee

Published: 2024-10-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [NuttX](<https://devfeed.tech/topics/nuttx.md>), [Python](<https://devfeed.tech/topics/python.md>), [Espressif](<https://devfeed.tech/topics/espressif.md>)

Tags: [apache](<https://devfeed.tech/tags/apache.md>), [blog](<https://devfeed.tech/tags/blog.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [development](<https://devfeed.tech/tags/development.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [nuttx](<https://devfeed.tech/tags/nuttx.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [python](<https://devfeed.tech/tags/python.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

A practical guide to using Pytest for high-level, on-target testing of applications running on the NuttX RTOS, including test environments, fixtures, parametrization, command-line arguments, and plugins.

### Source excerpt

How Pytest is used for testing the NuttX RTOS on Espressif devices.

## Testing a React App in Chrome with Heroku CI

DevFeed: [Testing a React App in Chrome with Heroku CI](<https://devfeed.tech/articles/testing-a-react-app-in-chrome-with-heroku-ci-26500.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/testing-react-app-chrome-heroku-ci/>)

Author: Julián Duque

Published: 2024-09-24T20:11:00Z

Content type: tutorial

Language: en

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

Topics: [React](<https://devfeed.tech/topics/react.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Playwright](<https://devfeed.tech/topics/playwright.md>), [Puppeteer](<https://devfeed.tech/topics/puppeteer.md>), [Headless Browser](<https://devfeed.tech/topics/headless-browser.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Jest](<https://devfeed.tech/topics/jest.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [ci](<https://devfeed.tech/tags/ci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [download](<https://devfeed.tech/tags/download.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [github](<https://devfeed.tech/tags/github.md>), [google-chrome](<https://devfeed.tech/tags/google-chrome.md>), [guide](<https://devfeed.tech/tags/guide.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [jest](<https://devfeed.tech/tags/jest.md>), [react](<https://devfeed.tech/tags/react.md>), [testing](<https://devfeed.tech/tags/testing.md>), [unit-testing](<https://devfeed.tech/tags/unit-testing.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>)

### AI overview

This tutorial explains how to run end-to-end tests for a React application in Heroku CI using headless Chrome, Jest, and Puppeteer. It covers automating tests for a simple form-based application and configuring the application and test scripts for CI execution.

### Source excerpt

When building web applications, unit testing your individual components is certainly important. However, end-to-end testing provides assurance that the final user experience of your components chained together matches the expected behavior. Testing web application behavior locally in your browser can be helpful, but this approach isn't efficient or reliable, especially as your application grows more [...] The post Testing a React App in Chrome with Heroku CI appeared first on Heroku.

## The CI Flake

DevFeed: [The CI Flake](<https://devfeed.tech/articles/the-ci-flake-30838.md>)

Original publisher: [Read original article](<https://hookrace.net/blog/the-ci-flake/>)

Published: 2024-08-15T22:00:00Z

Content type: article

Language: en

Sources: [Dennis Felsing](<https://devfeed.tech/sources/dennis-felsing.md>)

Topics: [ci](<https://devfeed.tech/topics/ci.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [ci](<https://devfeed.tech/tags/ci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [debug](<https://devfeed.tech/tags/debug.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-compose](<https://devfeed.tech/tags/docker-compose.md>), [integration](<https://devfeed.tech/tags/integration.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

The article investigates a rare flaky test failure in Materialize CI that became more frequent after tests moved from AWS to Hetzner Cloud. It documents attempts to diagnose the issue, including flushing a generated docker-compose.yaml file, reproducing the failure, and examining parallel execution and CI setup.

### Source excerpt

I analyzed a flaky test failure in our Materialize CI today: $ docker compose up -d --scale default=0 default no such service: default mzcompose: error: running docker compose failed (exit status 1) I had seen this error already once or twice in the last year, but it was incredibly rare in our Continuous Integration (CI) runs, and never happened locally. As usual, there were more pressing product issues to debug, so I never looked into it. But last week I switched most of our CI tests to run on Hetzner Cloud instead of AWS to save some money. Suddenly this issue started occurring more often in CI, so my thinking was that it must somehow be timing-dependent. Before investigating my first instinct was that we are not writing the docker-compose.yaml file properly, which had already led to flaky calls to Docker Compose before (source code): file = self.files.get(thread_id) if not file: file = TemporaryFile(mode="w") os.set_inheritable(file.fileno(), True) yaml.dump(self.compose, file) self.files[thread_id] = file So yesterday I added a file.flush() after the yaml.dump and hoped to be done with it. This morning I woke up and the issue was still occurring! Based on the logged docker call this should be the code causing the problem (source code): def handle_composition( self, args: argparse.Namespace, composition: Composition ) -> None: if args.workflow not in composition.workflows: # Restart any dependencies whose definitions have changed. # This is Docker Compose's default behavior for `up`, but # not for `run`, which is a constant irritation that we # paper over here. The trick, taken from Buildkite's # Docker Compose plugin, is to run an `up` command that # requests zero instances of the requested service. if args.workflow: composition.invoke( "up", "-d", "--scale", f"{args.workflow}=0", args.workflow, ) super().handle_composition(args, composition) else: [...] Running the test in an endless loop locally had no success of reproducing the issue: while true; do bin/mzcom

## Ep. 11: Enhancing Go Code with Effective Application Layer Tests

DevFeed: [Ep. 11: Enhancing Go Code with Effective Application Layer Tests](<https://devfeed.tech/articles/ep-11-enhancing-go-code-with-effective-application-layer-tests-22254.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/07/proper-prompt-formatting-for-enhanced-ai-model-performance-ep-11.html>)

Published: 2024-07-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [test-coverage](<https://devfeed.tech/topics/test-coverage.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [code-coverage](<https://devfeed.tech/tags/code-coverage.md>), [comprehensive-go-testing](<https://devfeed.tech/tags/comprehensive-go-testing.md>), [context](<https://devfeed.tech/tags/context.md>), [context-management-go-tests](<https://devfeed.tech/tags/context-management-go-tests.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [debugging-go-applications](<https://devfeed.tech/tags/debugging-go-applications.md>), [effective-test-organization-go](<https://devfeed.tech/tags/effective-test-organization-go.md>), [efficient-go-testing-techniques](<https://devfeed.tech/tags/efficient-go-testing-techniques.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [go](<https://devfeed.tech/tags/go.md>), [go-application-layer-tests](<https://devfeed.tech/tags/go-application-layer-tests.md>), [go-authentication-tokens](<https://devfeed.tech/tags/go-authentication-tokens.md>), [go-continuous-integration-testing](<https://devfeed.tech/tags/go-continuous-integration-testing.md>), [go-dependencies-management](<https://devfeed.tech/tags/go-dependencies-management.md>), [go-error-handling-consistency](<https://devfeed.tech/tags/go-error-handling-consistency.md>), [go-middleware-handlers](<https://devfeed.tech/tags/go-middleware-handlers.md>), [go-project-test-implementation](<https://devfeed.tech/tags/go-project-test-implementation.md>), [go-subtests-domain-level](<https://devfeed.tech/tags/go-subtests-domain-level.md>), [go-testing-strategies](<https://devfeed.tech/tags/go-testing-strategies.md>), [maintaining-go-software-quality](<https://devfeed.tech/tags/maintaining-go-software-quality.md>), [mock-apis-go-testing](<https://devfeed.tech/tags/mock-apis-go-testing.md>), [reliable-go-codebase](<https://devfeed.tech/tags/reliable-go-codebase.md>), [resilient-go-application](<https://devfeed.tech/tags/resilient-go-application.md>), [scalable-go-software-systems](<https://devfeed.tech/tags/scalable-go-software-systems.md>), [table-driven-tests](<https://devfeed.tech/tags/table-driven-tests.md>), [table-driven-tests-go](<https://devfeed.tech/tags/table-driven-tests-go.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

Episode 11 of the Ultimate Software Design series explains how to implement application-layer tests in Go. It covers domain-level test organization, subtests, table-driven tests, mock APIs, dependency management, authentication tokens, context, and consistent error handling, with the goal of broad coverage using minimal database instances.

### Source excerpt

Introduction: Welcome to Episode 11 of our Ultimate Software Design series! In this episode, Bill delves into the intricacies of implementing robust application layer tests within Go projects, providing developers with essential strategies for creating scalable and maintainable software systems. Implement application layer tests that ensure comprehensive coverage with minimal database instances. Organize tests at the domain level using subtests for easier issue isolation and resilient code. Manage dependencies, authentication tokens, and context for smooth information flow and consistent error handling.

## Blacksmith builds faster CI analytics with Tinybird

DevFeed: [Blacksmith builds faster CI analytics with Tinybird](<https://devfeed.tech/articles/blacksmith-builds-faster-ci-analytics-with-tinybird-18397.md>)

Original publisher: [Read original article](<https://www.tinybird.co/blog/blacksmith>)

Author: Tinybird

Published: 2024-07-24T00:00:00Z

Content type: article

Language: en

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

Topics: [ci](<https://devfeed.tech/topics/ci.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [ci](<https://devfeed.tech/tags/ci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [customer-stories](<https://devfeed.tech/tags/customer-stories.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>)

### AI overview

The article describes Blacksmith's offering of GitHub Actions that are presented as twice as fast and less than half the cost, with user-facing CI analytics powered by Tinybird.

### Source excerpt

Learn how a fast-moving startup is shaking up the world of Continuous Integration by offering 2x faster GitHub Actions at less than half the cost, with user-facing CI analytics powered by Tinybird.

## Blog: Halfway Through GSoC 2024: My Progress and Plans with Falco

DevFeed: [Blog: Halfway Through GSoC 2024: My Progress and Plans with Falco](<https://devfeed.tech/articles/blog-halfway-through-gsoc-2024-my-progress-and-plans-with-falco-32518.md>)

Original publisher: [Read original article](<https://falco.org/blog/gsoc-2024-midterm/>)

Published: 2024-07-24T00:00:00Z

Content type: article

Language: en

Sources: [Falco - Falco](<https://devfeed.tech/sources/falco-falco.md>), [Falco - The Falco blog](<https://devfeed.tech/sources/falco-the-falco-blog.md>)

Topics: [Falco](<https://devfeed.tech/topics/falco.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [ci](<https://devfeed.tech/topics/ci.md>)

Tags: [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [container](<https://devfeed.tech/tags/container.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [falco](<https://devfeed.tech/tags/falco.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [mentorship](<https://devfeed.tech/tags/mentorship.md>), [midterm](<https://devfeed.tech/tags/midterm.md>), [testing](<https://devfeed.tech/tags/testing.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

A GSoC 2024 mentee describes progress improving Falco's event-generator for testing and benchmarking. The project includes declarative YAML-based Falco rule testing, a container runner, and planned CI pipelines to assess threat-detection correctness and performance.

### Source excerpt

Hello Falco community, I'm Kiriti, a current GSoC mentee under Falco Security. I have been working diligently to improve the testing and benchmarking capabilities of Falco's event-generator project. Now that we've reached the midterm of GSoC, I'm eager to share the journey so far. In this blog, I'll delve into the details of my contributions, particularly focusing on two key PRs that have been merged, and outline my plans for the remainder of the program. My Project: Enhancing Falco's Event-Generator The event-generator is a vital utility within the Falco ecosystem, designed to test Falco's detection capabilities. My Google Summer of Code project focuses on upgrading the event-generator to enhance its testing and benchmarking capabilities, reliability, and consistency. Additionally, I am developing new Continuous Integration (CI) pipelines based on the upgraded event-generator. The ultimate goal is to evolve the event-generator into the standard tool for systematically assessing the correctness and performance of Falco's threat detection capabilities during every release and development cycle. My Journey So Far: Before being selected for GSoC, I contributed to the event-generator repository. I am grateful to Leonardo Grasso and Federico Di Pierro, who played a vital role in getting my PRs merged during the pre-GSoC contribution phase. These contributions helped me understand the event-generator codebase. I am also thankful to my mentors, Jason Dellaluce and Aldo Lacuku, for selecting me as a GSoC mentee. I will share my complete story of getting selected to GSoC in future. After my selection, Jason, Aldo, and I collectively designed a plan to enhance the event-generator. The community bonding period was crucial in designing and understanding the implementation plan. You can view our idea here, which we will implement during this GSoC period. Once the coding period began, we managed to merge two key PRs before the midterm. These PRs partially added support for testin

[Next page](<https://devfeed.tech/tags/continuous-integration.md?cursor=WyIyMDI0LTA3LTI0VDAwOjAwOjAwKzAwOjAwIiwgIjM0NDBiNzliLTc1YTAtNDcyNC05ZmVhLTkzZTRhOTJjNWRlNiJd>)