Home / Companies / Semaphore / Blog / September 2021

September 2021 Summaries

3 posts from Semaphore

Filter
Month: Year:
Post Summaries Back to Blog
Parallel testing is a crucial technique for optimizing CI/CD pipelines by running multiple tests simultaneously, thereby reducing wait times and enhancing productivity. It involves automating the testing process and leveraging additional CPU power or machines to handle concurrent jobs, which can be achieved through automatic scaling or self-hosted agents. The strategy is particularly effective in scenarios involving monorepos, static code analysis, testing across multiple environments, and version regression testing. While parallel testing offers benefits such as faster builds, quicker recovery from failures, and reduced bottlenecks, it also presents challenges, including the potential for increased costs, complex dependencies, and race conditions. Successful parallelization requires careful planning, such as identifying dependencies, prioritizing fast tests, and configuring tests to run in parallel where feasible. Semaphore supports different levels of parallelization, including job, block, pipeline, and workflow levels, offering a flexible framework for integrating parallel testing into CI/CD workflows. Overall, while parallel testing can significantly enhance efficiency and feedback loops, it necessitates a balanced approach to ensure optimal results.
Sep 29, 2021 2,176 words in the original blog post.
Earthly is a Docker-based build tool designed to improve the user experience by bridging the gap between Docker and Make, providing a more streamlined and repeatable build process. Earthly does not replace language-specific tools, but rather integrates with them, leveraging Docker containers for consistency and parallel execution. It introduces a syntax that combines elements of Make and Dockerfiles, allowing for the creation of artifacts beyond container images. While Earthly offers language-agnostic capabilities and low-maintenance configuration, it does not fully replace Makefile or Docker Compose, and it can be slower than native Docker due to its design for repeatability. Earthly supports advanced features like testing and continuous integration pipelines, enabling developers to build, test, and push Docker images to remote repositories efficiently. Despite some limitations, such as confusing error messages and slow multiplatform builds, Earthly offers a promising approach to building software with Docker, with ongoing development addressing its current challenges.
Sep 15, 2021 2,074 words in the original blog post.
The text provides a detailed guide on setting up a continuous integration (CI) pipeline for TypeScript projects using Yarn Workspaces and Semaphore, focusing on building and testing at scale. It explains how TypeScript extends JavaScript with added complexity due to the need for compilation, and illustrates the setup process using a monorepo containing two packages, 'shared' and 'sayhi'. The guide covers configuring Yarn Workspaces, linking TypeScript packages using project references, and implementing a change-based CI pipeline with Semaphore that optimizes build processes by executing only the blocks related to modified packages. The article highlights the benefits of using TypeScript for better code readability and fewer errors, and concludes with insights into managing dependencies and running workflows for efficient and scalable development.
Sep 08, 2021 1,422 words in the original blog post.