June 2025 Summaries
11 posts from CircleCI
Filter
Month:
Year:
Post Summaries
Back to Blog
When considering self-hosting CI/CD runners, teams should weigh their options carefully due to the potential complexity and hidden costs involved. While self-hosting can appear to offer cost savings on compute, it often overlooks the operational overhead such as infrastructure management, Kubernetes expertise, and ongoing maintenance. Teams might consider self-hosting due to budget scrutiny, customization needs, performance bottlenecks, security constraints, or existing infrastructure challenges. However, the decision involves understanding the full scope, including scaling challenges, operational burdens, and whether the team has the necessary expertise and resources. Self-hosting tends to make sense for teams with significant scale and capabilities, whereas optimizing existing cloud setups often delivers faster results with less risk. A hybrid approach, using both cloud and self-hosted runners, can sometimes offer the best balance of control and complexity.
Jun 26, 2025
2,184 words in the original blog post.
Engineering teams often grapple with whether their current CI/CD setup is beneficial or becoming an impediment, as issues can gradually transform into standard practices that no longer meet evolving needs. Common signs indicating the need for a CI/CD evaluation include persistent build reliability complaints from developers, overwhelming support requests for platform teams, and developers frequently bypassing standardized workflows. Additionally, the pace of AI-assisted development, new security and compliance requirements, and the need for a robust foundation for new platform investments can reveal limitations in existing systems. Leadership questioning engineering velocity and return on investment can also signify that CI/CD bottlenecks are impacting organizational performance. Recognizing these signs is crucial, and initiating a structured evaluation with stakeholder buy-in is recommended to determine whether current platforms meet future requirements or if alternatives are necessary. Resources like CircleCI's evaluation guide provide tools and templates to facilitate this process, emphasizing the importance of a thorough, criteria-based approach to selecting the most appropriate CI/CD platform.
Jun 25, 2025
1,330 words in the original blog post.
Large Language Models (LLMs) are increasingly being run locally on consumer-grade hardware, necessitating the need for reliable cross-operating system compatibility. This tutorial outlines how developers can set up an OS compatibility testing workflow using CircleCI matrix jobs, which automate the testing process across Linux, macOS, and Windows. By using Ollama, a tool for running LLMs locally, developers can ensure their applications function correctly on different operating systems without manual testing. The tutorial provides a step-by-step guide to installing Ollama on each OS using their respective package managers and running Python unit tests to verify functionality. By integrating these tests into a CI/CD pipeline, developers can catch platform-specific issues early, thereby enhancing the robustness and reliability of their applications across multiple environments. This approach can be adapted for various LLM projects to support different OS configurations and ensure seamless functionality.
Jun 23, 2025
2,754 words in the original blog post.
Playwright is an end-to-end testing framework designed for web applications, supporting cross-browser testing via a unified API for Chromium, Firefox, and WebKit. It includes a built-in test runner that facilitates setup and teardown logic through hooks such as `test.beforeAll`, `test.beforeEach`, `test.afterEach`, and `test.afterAll`, which manage test states and side effects. These hooks streamline the testing process by ensuring tests run smoothly with proper initialization and cleanup. Additionally, Playwright can be integrated with CI/CD platforms like CircleCI to automate test execution, enhancing efficiency and consistency in deployment pipelines. The framework also offers flexibility through custom fixtures that extend its functionality, such as navigation automation and state management, further optimizing the test development process.
Jun 23, 2025
2,156 words in the original blog post.
The text provides a comprehensive guide on deploying a Flask-based application using the sidecar pattern in Kubernetes, emphasizing the integration of CircleCI for automating the Continuous Integration and Continuous Deployment (CI/CD) pipeline. The sidecar pattern allows developers to extend application functionality without altering the core service by running auxiliary processes, such as load balancing, in tandem with the main application. The tutorial walks through the setup of necessary tools and accounts, including Microsoft Azure, CircleCI, GitHub, and Kubernetes tooling, and highlights the creation and configuration of Docker images and Kubernetes manifests for the main and sidecar services. Detailed instructions are given for setting up Azure Kubernetes Service (AKS) and Azure Container Registry (ACR) to manage and store Docker images, respectively. The CircleCI configuration automates the deployment process, building Docker images, pushing them to ACR, and deploying them on AKS. The tutorial concludes with testing and verifying the application deployment, emphasizing the benefits of the sidecar pattern for load balancing and the efficiency of an automated CI/CD pipeline, and provides instructions for resource cleanup to avoid cloud costs.
Jun 16, 2025
3,765 words in the original blog post.
The text provides a detailed guide on integrating an AI-powered code review agent into a Go project to automate code reviews on GitHub pull requests. The agent, which leverages the OpenAI API, offers contextual suggestions, praise, and summaries by posting comments directly on pull requests, thereby streamlining the feedback process. The setup involves running the agent locally, exposing it to GitHub via Ngrok, and enforcing a review workflow using CircleCI, which ensures that pull requests are properly reviewed and any AI-generated comments are acknowledged or acted upon before merges are allowed. The tutorial walks through setting up the necessary environment, creating a simple Go program for testing, and establishing a CircleCI pipeline to act as a gatekeeper, which checks that all AI comments have been reviewed. Additionally, branch protection rules in GitHub ensure that pull requests cannot bypass the review process. The project is open source, welcoming contributions and adaptations for other programming languages, offering a robust foundation for automating code reviews and improving developer workflows.
Jun 13, 2025
2,210 words in the original blog post.
Machine learning (ML) pipelines are increasingly being managed like software systems, incorporating security measures to protect against vulnerabilities such as poisoned training data, backdoored models, and dependency exploits. ML teams can utilize existing tools like Python, pip, and CircleCI to integrate security checks directly into their CI/CD workflows without overhauling their current setup. This approach includes secret scanning with tools like Gitleaks to catch hardcoded secrets, dependency auditing with pip-audit to identify vulnerable packages, and model hash validation to ensure consistency and integrity of trained models. These practices help mitigate risks associated with ML systems, such as data poisoning and model drift, by catching potential issues early in the development pipeline. The tutorial emphasizes that enhancing ML security does not require rebuilding tools from scratch but rather integrating lightweight, automated checks into existing processes to ensure the trustworthiness of ML models and data.
Jun 13, 2025
2,148 words in the original blog post.
The text provides a comprehensive tutorial on how to automate the deployment of React applications to AWS Elastic Beanstalk using CircleCI, highlighting the benefits of automation such as reducing human error and saving time. It guides readers through setting up a continuous deployment pipeline with CircleCI, creating a React application using Vite, configuring AWS access, and deploying the application to AWS using Elastic Beanstalk. The tutorial emphasizes the importance of configuring a custom server with Express to serve static files and includes detailed steps on preparing the application for deployment, automating the process with CircleCI, and managing AWS credentials for successful builds. It concludes by encouraging the application of these practices to other React projects and promoting the use of AWS Elastic Beanstalk and CircleCI for efficient deployment and continuous integration.
Jun 11, 2025
1,875 words in the original blog post.
The text provides a comprehensive tutorial on automating the generation of synthetic question-answer datasets using CircleCI and large language models (LLMs) via the Together API. The process involves scraping fresh web content using Python and DuckDuckGoSearch, extracting meaningful text with BeautifulSoup4, and employing an LLM to convert this content into conversational Q&A pairs. The tutorial outlines setting up a Python project with dependencies, utilizing scripts for data scraping and Q&A pair generation, and automating the workflow with a CircleCI pipeline that runs daily. It also emphasizes the importance of maintaining up-to-date data for LLMs and suggests potential extensions such as domain-specific generation and multilingual datasets, while ensuring the security of API keys and improving the model over time through dataset versioning.
Jun 11, 2025
2,860 words in the original blog post.
Hyperparameter tuning is essential for optimizing large language models (LLMs), as parameters like learning rate, batch size, weight decay, and training epochs significantly influence model performance and convergence. Traditional manual methods such as grid or random search are inefficient for compute-intensive tasks. By automating this process using CircleCI matrix jobs and integrating Weights & Biases (wandb) for tracking, users can streamline experiment tracking and reproducibility. This setup involves creating a reproducible training script that accepts command-line arguments for hyperparameters, which are then handled by CircleCI to initiate parallel jobs with different parameter combinations. The results are logged in real time to wandb, providing a central dashboard to compare experiments. This system simplifies the hyperparameter tuning process, making it scalable and automated, and can be triggered by code changes or schedules. This method greatly reduces manual effort and enhances the ability to scale experiments across different environments.
Jun 05, 2025
2,202 words in the original blog post.
Time zone logic is a frequent source of complex bugs in software development, especially for global applications like calendars and schedulers. Developers often encounter issues such as incorrect time comparisons and inconsistencies due to testing primarily in their local time zone. These challenges arise from the dynamic nature of time zones, including varying offsets and daylight-saving time adjustments. The blog post highlights how CircleCI, a continuous integration platform, can mitigate these issues by employing matrix builds that test software across multiple time zones simultaneously. The example given involves a Java project using CircleCI to ensure coupon expiration logic works correctly across different global time zones. By utilizing CircleCI's capability to set environment variables and run parallel tests, developers can identify and fix time zone-related bugs more efficiently, ensuring reliable software performance regardless of the user's location. The approach is demonstrated through a project setup, using Java and CircleCI, where a service validates coupon expiration times across various time zones, with results documented in an HTML report. This method not only streamlines the testing process but also enhances the reliability of time-sensitive features in global applications.
Jun 05, 2025
3,284 words in the original blog post.