All blogs / DevOps / SRE / infrastructure
Semaphore
Catch the best CI/CD tutorials, interviews with top engineering leaders, and tips for you to become a well-rounded developer.
DevOps / SRE / infrastructureTesting / QASoftware / engineering practice
- Posts
- 898 from 5 Mar 2012 to 9 Oct 2026
- Posting
- weekly (60 in the last year)
- Kind
- company blog
- Feed
- https://semaphore.io/feed
2026 52
- Semaphore Open Source 1.6: MCP Server, sem-ai Out of the Box, and Partial Job Reruns
- sem-ai 0.4.0: smaller responses, safer access, and pre-flight checks
- Making testing work better for AI driven development
- Rerun Only the Jobs That Failed
- Announcement: Xcode16 Deprecation in Semaphore
- Best CircleCI alternatives in 2026
- Best CircleCI alternatives in 2026
- Best GitLab Alternatives in 2026
- Best GitLab Alternatives in 2026
- Best Bitbucket Alternatives in 2026
- Best Bitbucket Alternatives in 2026
- How Lawmatics Cut CI Compute Cost by 39.3% and Shortened Pipeline Time by 15.8%
- Best Jenkins Alternatives in 2026
- Best Jenkins Alternatives in 2026
- Best GitHub Actions Alternatives in 2026
- Best GitHub Actions Alternatives in 2026
- Best CI/CD Tools in 2026: Performance and Cost Compared
- Flaky Test API Now GA, New Auto-Fix Skill, Skill Quality Improvements
- Codex Support, Faster Task Creation, and Flaky Test Visibility
- Building an AI-Native CI/CD Experience with sem-ai
- Introducing Semaphore for AI Agents: An AI-Native Developer Experience for CI/CD
- Announcement: Xcode15 Deprecation in Semaphore
- What CI/CD strategies work for embedded or IoT projects that require hardware testing?
- How to orchestrate IaC and application deployments together in CI/CD?
- Air-Gapped Deployments: How to Deploy to Servers Without Internet Access (Complete Guide)
- How Does CI/CD Differ for Machine Learning Pipelines (MLOps)?
- Semaphore ArgoCD Integration: Complete Guide with Flux and Terraform
- Introducing .NET Support on Semaphore
- Can ChatGPT generate a CI/CD YAML pipeline for my Node.js project?
- How to Manage CI/CD for Game Development (Unity, Unreal, Large Binaries)
- How does AI-driven deployment differ between traditional software and ML models (MLOps)?
- What guardrails or policies should be in place when AI is part of deployment decisions (e.g., auto-rollback, approvals)?
- How to Add AI Test Selection Without Breaking CI Reliability
- MCP OAuth in Practice: Lessons from Building Authentication for AI Agents
- How to Manage Permissions When AI Tools Access Private Repositories
- Introducing Semaphore’s New Pricing Model: Built for the AI Era of CI/CD
- Semaphore CI/CD Benchmark: Performance and Cost Analysis
- How to Monitor and Audit AI Decisions in a CI/CD Pipeline
- What Metrics Should You Use to Evaluate AI in Your CI/CD Pipeline?
- How to Monitor and Optimize CI Build Performance
- OAuth Authentication for the Semaphore MCP Server
- What Are the Risks of Fully Automating Deploy and Rollback Decisions with AI in Production Pipelines?
- How Do Large Companies Manage CI/CD at Scale?
- How to Integrate CI/CD with GitOps Tools Like Argo CD or Flux
- AI-Driven Onboarding and Workflow Automation in Semaphore
- How to Set Up a Basic CI/CD Pipeline for Your Application
- How Can AI Help Optimize Which Tests to Run in CI/CD?
- Can AI Detect Flaky Tests or Predict Build Failures in CI/CD?
- Extending CI/CD and What’s Next for Semaphore
- How Do I Enforce Quality Checks on AI-Generated Code in CI/CD?
- How to Practice CI/CD Hands-On (Without Overcomplicating It)
- Why Do Builds Pass Locally but Fail in CI?
2025 49
- MCP Server Update: AI Agents Can Now Access Semaphore Docs
- Announcement: Ubuntu 20.04 Deprecation in Semaphore
- Announcing ARM Machines on Semaphore
- New Features for Semaphore MCP Server
- Self-healing CI with GitHub Copilot and Semaphore
- AI-Driven CI: Exploring Self-healing Pipelines
- AI-Driven Development: Introducing Semaphore’s MCP Server
- Let’s Build an MCP Server
- What is MCP Really?
- DIY AI Code Review
- Announcing Semaphore v1.5 Release – Service Accounts, Dynamic Pipelines, and Git Tags
- Xcode 15 Deprecation in Semaphore
- Deprecation of a1-standard-4 in Semaphore
- Job Matrix: Feature Showcase
- Feature Showcase: Fan-Out Fan-In
- Software Delivery Trends: From Serverless to CI/CD Discipline
- The Secrets to Scaling Engineering Teams (Lessons from Rails, Unity & WeTransfer)
- Pipelines Explained: 3 Principles for CI/CD
- Semaphore v1.4 Release – Save Your CI Minutes
- GPT-OSS: Specs, Setup, and Self-Hosting Guide
- Cloud vs Hybrid: A Guide to Choosing Semaphore Editions
- Automated Testing: From Mainframes to ChatGPT
- Semaphore vs BitBucket Pipelines
- Our new approach to enterprise CI/CD: Free tier, source available, and guaranteed savings
- Semaphore vs Travis CI
- GitHub Actions vs Semaphore
- Semaphore v1.3 Release Roundup: A Big Leap for Contributors and Small Teams 🚀
- The Secrets Behind Plumber: Managing Thousands of Pipelines at Semaphore
- Semaphore Community Edition vs. Jenkins
- Ephemeral Environments for Testing Open Source Projects
- Semaphore v1.2 Release Roundup: Reports and Git Agnostic
- One API to Rule Them All: Building a Cohesive API for Semaphore
- How to Use AI to Reduce Technical Debt
- Introducing Semaphore Canvas: Visual Workflow Automation for Deployments
- Semaphore Now Supports Ubuntu 24.04
- Unveiling the Semaphore Architecture: How It Works Under the Hood
- How to Build an AI Agent to Help with Daily Tasks
- How to Scale CI/CD With Self-Hosted Agents
- Semaphore v1.1 Release Roundup: Building in the Open
- The Best AI Coding Assistants For 2025
- Top 8 Emerging Programming Languages to Watch in 2025
- Semaphore Goes Open Source Today
- Tech Layoffs Analysis: Which Skills Are Still in High Demand
- Accelerate your CI/CD Pipeline with BDD and Acceptance Testing
- Semaphore is Going Open Source in 30 days
- What to Expect: Tech Trends For 2025
- Smoke Testing vs. Sanity Testing
- Semaphore is Now SOC 2 Type 2 Compliant!
- The 10-Step Checklist for Continuous Delivery
2024 81
- 2024 Tech Roundup: The News You Might Have Missed
- Unit Testing vs. Integration Testing: Test Automation Basics
- TDD vs. BDD: What’s the Difference? (Complete Comparison)
- Top 10 Rules of Continuous Integration
- Securing Your CI/CD Pipeline with Snyk Open Source and Semaphore
- How to Build a RAG Chatbot to Chat with Documents Using Sparse Data
- How Attackers Use HTTP Status Codes for Malicious Purposes
- Best Shift-Left Testing Tools To Improve Your QA
- Building an AI-Enabled Automated Email Summary System with CI/CD
- The Arrange, Act, and Assert (AAA) Pattern in Unit Test Automation
- Custom Roles Are Here
- API Security Best Practices: Protecting Your Data in Transit
- A Guide to Self-Hosted LLM Coding Assistants
- Xcode 14 Deprecation in Semaphore
- Securing a Spring Boot Application with Cerbos
- How to Expose Kubernetes Apps Using the Gateway API
- 7 Elasticsearch Alternative Search Solutions for Your Startup
- 5 Low-Cost Database Services to Migrate to
- OpenAI API Alternatives
- Using Docusaurus to Build A Modern Documentation Website
- Using RAG-Enabled LLMs to Automate Data Analysis
- Codeium: The Best Github Copilot Alternative
- Cache Optimization on NextJS Without Vercel
- Zero Budget Big Dreams: Starting a Tech Startup from Scratch
- Keeping Self-Hosted LLM Costs Down: Best Practices and Tips
- SonarQube: Open Source Security Automation
- 10 Open-Source Tools for Optimizing Cloud Expenses
- Cut Down S3 Storage Costs with Cloudflare R2
- 5 Low-Cost Web Hosting Alternatives
- Three Practical Use Cases of Docker Secrets
- Optimizing Kubernetes Cloud Costs
- How To Fix Flaky Tests in Rendering and Animation Workflows
- Unlocking Efficiency: 3 AI Tools for Automatic Software Documentation
- Why Your Next.js Site Needs an API Layer and How To Build It
- React Compiler: What Is It and How Will It Change Frontend Development?
- Testing Tools to Identify Flaky Tests
- Flaky Tests in Machine Learning: Challenges and Countermeasures
- Enhancing Test Stability With Test Doubles for Flaky Test Management
- A Guide to CI/CD Costs Optimization
- Announcing Apple Silicon Machine Types
- A Complete Guide to Docker Secrets Management
- How to Stop the Flakes Before They Fly
- Announcing RBAC Enhancements – Project Roles and Groups
- Tips for Becoming a Good Technical Writer
- Tackling Flaky API Tests in React Projects Using Axios or Fetch
- Vitest: Replacing Jest on Vite Projects
- Flaky Test Dashboard is Now Generally Available
- Best Practices for Identifying and Mitigating Flaky Tests
- How to Manage Flaky Tests in Jest
- How to Avoid Flaky Tests in Cypress
- Flaky Tests In React: Detection, Prevention and Tools
- Addressing Flaky Tests in Legacy Codebases: Challenges and Solutions
- 8 Ways To Retry: Finding Flaky Tests
- How to Avoid Flaky Tests in Selenium
- Optimizing the Performance of LLMs Using a Continuous Evaluation Solution
- How to Avoid Flaky Tests in Playwright
- How to Handle Imbalanced Data for Machine Learning in Python
- Handling Flaky Tests in LLM-powered Applications
- Kubernetes Deployments: A Guide to the Rolling Update Deployment Strategy
- No More Seat Costs: Semaphore Plans Just Got Better!
- Simplifying Kubernetes Development: Your Go-To Tools Guide
- Introducing Xcode 15 Support
- HTMX vs React: A Complete Comparison
- Understanding Data Lineage in Big Data: Challenges, Solutions, and Its Impact on Data Quality
- Optimizing LLMs: Tools and Techniques for Peak Performance Testing
- Seamless SPA Transitions Using the New View Transitions API (Part 2)
- Seamless SPA Transitions Using the New View Transitions API (Part 1)
- Build a Caching Layer in Node.js With Redis
- Creating Push Notifications Rapidly With Notifee in React Native (iOS)
- Building a Successful Developer Platform: 3 Lessons from Toyota’s Production System
- Announcing Flaky Tests Dashboard Open Beta
- MLOps: From Jupyter to Production
- How To Integrate Redux with React Based Application: A Step By Step Tutorial
- How to Organize All Your Routes in a Single Layer in Node.js
- Securing Front-end Applications in Kubernetes With SSL/TLS
- Machine Learning for the Rest of Us
- A Comprehensive Guide to Advanced Animation Techniques in Flutter
- Managing State With Vuex in Vue.js
- Why Do We Need DevOps for ML Data?
- Gleam Language, Types for the BEAM
- Gemini Pro vs ChatGPT and Bard: The Search for the Best LLM
2023 138
- Deprecating Ubuntu 18.04 in Semaphore
- 7 Misconceptions About Microfrontend
- Empathy-Driven Design: Taking a Walk in the User’s Shoes
- LocalAI: An Open-Source Alternative to OpenAI API
- 6 Ways For Running A Local LLM (how to use HuggingFace)
- How To Organize Constants in a Dedicated Layer in JavaScript
- Importance of Kubernetes and the Need for Tainting Nodes
- NativePHP: Build Desktop Applications with PHP
- Docker Volumes: Efficient Data Management in Containerized Environments
- WebAssembly and Docker: Lightweight Containers
- Unravelling 5 Exciting Modern Web Development Features
- How to Build a Google Chrome Extension in 6 Steps Using ChatGPT
- Navigating Code Reviews as a Junior Engineer: Dos and Don’ts
- Debugging Your Go Applications
- Reactive Programming in JavaScript With RxJS: A Paradigm Shift
- Introduction to LangChain
- Fostering Team Collaboration in a Virtual Work Environment
- Securing Container Images Using Notary And The Update Framework
- State of DevOps 2023 Highlights
- Using Redis Modules For Advanced Use-Cases
- Developing an AI Chatbot With Vercel AI SDK
- DevSecOps in Modern Software Development
- A React useCallback Hook Primer
- Web Animation for Your React App: Framer Motion vs GSAP
- Understanding Open Source Licensing
- Introducing Just Run with Tasks
- How to Add Dark Mode in ReactJS Using Material UI
- How to Thrive and Grow in Software Industry as an Introvert
- Building Custom Middleware in FastAPI
- Site Reliability Engineering: A Comprehensive Guide
- Quickly Reproducing Production Bug With Event Sourcing
- 10 IT Jobs to Consider: AI-Proofing Your Career
- Kubernetes Health Checks: A Guide to Probes
- Introduction to the New React useEffectEvent Hook
- Best Practices for Securing Node.js Applications in Production
- How to Integrate Prometheus and Grafana on Kubernetes Using Helm
- Advanced CI/CD Workshop
- The Developer’s Blueprint for Effective Code Reviews
- Using Probabilistic Data Structures in Redis
- Beyond Technical Skills: How Developers Can Master Soft Skills for Career Success
- A Guide to React Portals
- How to Successfully Market Your App as a Developer in a Crowded Digital World
- Deploying ERC20 Token With Hardhat: A Step-by-Step Guide
- Mastering ERC20 Token in Solidity
- Building Scalable Applications Using Redis as a Message Broker
- Build a Compelling Cover Letter Writing App With NextJS and ChatGPT
- Monitoring Performance in Microservices Architecture
- Creating a Newsletter Page With Vue and Firebase Cloud Firestore
- Top 10 Must-Have Tools for Kubernetes Engineers
- SPA Are Dead, Long Live SPA
- What Is a Front-End Design System, and Why Is It Necessary?
- How to Leverage Data Sharing to Make Better Business Decisions at Scale
- Will AI Take Software Engineering Jobs?
- 8 Tips for Junior Software Developers
- A Guide to OpenAI: How to Choose the Best Language Model For Your AI Application
- React Native Performance Measuring and Monitoring Tools
- Function Calling: Integrate Your GPT Chatbot With Anything
- Microservices Communication in NestJS With gRPC
- A Quick Overview of the DevOps Engineer Role
- Understanding State Management in Flutter (Part 3)
- Understanding State Management in Flutter (Part 2)
- Introducing Okta integration
- Understanding State Management in Flutter (part 1)
- An Introduction to gRPC: Building Distributed Systems With Efficiency and Scalability in Mind
- How to Build a Routing Layer in React and Why You Need It
- Careful With Your Imports: 6 Things to Know About Project Dependencies
- Word Embeddings: Giving Your ChatBot Context For Better Answers
- Building and Testing PHP Microservices With Semaphore
- The Importance of Emotional Intelligence in Effective Leadership
- Creating SVG Animations Using Tailwind CSS
- Breaking Free From the Cloud With Kamal: Just Enough Orchestration for Your Apps
- Understanding Redis High-Availability Architectures
- How to Implement Chaos Testing for Your Backend Services Using k6
- Managing Stateful Applications on Kubernetes: Challenges and Best Practices
- Exploring 8 Futuristic Databases to Watch in 2023
- Identifying Vulnerabilities in Running Applications Using DAST
- The Service Mesh Landscape in 2023
- Managing Secrets and Sensitive Data in Android CI/CD With Semaphore
- Low-Code and No-Code Development Tools
- Getting Started With Kubernetes Ingress
- Asynchronous JavaScript for Beginners
- Website Scroll Comparison: Locomotive Scroll vs React Scroll Parallax
- Semaphore Classic Deprecation – How to prepare
- Synthetic Monitoring Management Using Playwright, @elastic/synthetics and Semaphore
- Understanding ReplicaSet vs. StatefulSet vs. DaemonSet vs. Deployments
- The Developer’s Dilemma: How to Avoid the Comparison Trap and Build a Fulfilling Career
- Introducing Semaphore CI/CD Booster Experience
- Developer’s Guide to Passwordless Authentication
- Introduction to Wasp: A DSL for Building Full-Stack Web Applications
- Docker Swarm vs. Kubernetes
- Announcing A New Way of Learning: The CI/CD Learning Tool
- Step up Your Go App Testing Game With the Testify Framework
- Streamlining WebAssembly Development With Spin JavaScript SDK
- 10 Best Alternatives To ChatGPT: Developer Edition
- Technical Writing for Humans (P.S. I Love You)
- Service Outage Postmortem: April 28
- Writing Unit Tests in Node.js Using Jest
- Deployment Targets – Limiting Access to Promotions
- The Best Strategies to Slim Docker Images: How to Reduce Docker Image Size
- Build a Memory Game with Rails, Stimulus JS, and Tailwind CSS
- Docker Logging: 7 Best Practices
- Introducing Project Secrets
- The Importance of Open-Source Security
- Build a ChatGPT-Powered Chatbot With Flutter
- The Impact of Cloud Computing on Risk Management and Fraud Prevention
- Strategies for Successful Agile Implementation
- How Agile Helps Programming Teams Succeed
- Benefits of Agile Methodology
- Starting With Microfrontends
- Team Collaboration Strategies for Hybrid DevOps Teams
- Scaling a Javascript Monorepo With Nx
- Embracing Diversity in a Software Team: Why It Matters and How to Do It
- Building an Error Handling Layer in React
- Microservices Best Practices
- Mastering the Context API in React for State Management and Advanced Use Cases
- Creating Data Pipelines With Elixir
- How to Improve React Native Performance
- ChatGPT Writes Code: Will It Replace Software Developers?
- Getting Started With Astro
- Why You Need an API Layer in Your Spring Boot App and How to Implement It
- Trunk-Based Development: The Key to Better and Faster Software
- Introducing Startup and Scaleup: Our New Paid Plans
- Will Carbon Replace C++?
- 9 Tips for Becoming a Successful Tech Leader
- Vulnerability Scanning in Go With Govulncheck
- Ready to Release? Securing Your React Native Apps
- A First Look at Neon: A Postgres Database That Branches
- Ruby Adds Support for WebAssembly: What Does This Mean for Ruby Developers?
- Release Management: Is Your Product Ready for Success?
- Ease Into Ruby 3’s Static Typing Powers With RBS, TypeProf and Steep
- 3 Pillars to Maximizing Security Potential in Complex Cloud Environments
- 4 Ways to Improve Your Technical Interview Process
- Getting Started With Property-Based Testing in Python With Hypothesis and Pytest
- Blue Green Deployment for Node.js Without Kubernetes
- How to Use Sorbet to Type-Check Ruby
- Power-Up Your Pipelines: New Machines Available
- Dockerizing a Node.js Web Application
- Taming Cloud Costs with Infracost
2022 82
- Writing Clean and Efficient Table-Driven Unit Tests in Go
- Measuring Page Speed with Lighthouse and CI/CD
- 5 Reasons to Use Elixir in Production
- Service Meshes for Kubernetes: Unlocking Standardized Security, Resilience, and Traffic Management
- Introducing Support for OpenID Connect
- 3 CI/CD Jobs for Any Repository
- 6 Tips for Improving Dev Team Communication and Collaboration
- React Native in 2022 and Beyond
- Secure Kubernetes with Kubescape
- 36 Questions to Ask Your Future Software Employer
- Why Your Backend in Node.JS Needs an API Layer and How to Build It
- How to Set Up a CI/CD Pipeline With FastAPI, AWS, and Semaphore
- Elixir Code Security: Prioritize Security in Your CI With 4 Tools
- Efficiency With Elixir
- Deprecating Xcode 12 in Semaphore
- 17 DevOps Metrics To Measure Success
- The Secret Art of Storytelling in Programming
- Measure Your Team’s CI/CD Performance with Project Insights, Semaphore’s Newest Feature
- Automate Your React Native Release Process With Semantic Release, Fastlane, and Semaphore
- Xcode 14 Is Now Available in macOS Monterey Image
- How to Use Rubocop for Your Team’s Rails Apps
- Billing Update in Semaphore: Rounding up Smaller Jobs to 1 Minute
- Improving Security in Your CI/CD Pipeline
- Microfrontends: Microservices for the Frontend
- Database Management With CI/CD
- 4 Reasons Why You Should Prefer Vite Over Create-React-App (CRA)
- Introducing Audit Logs for Your Organization’s Security and Compliance
- New book: Transitioning from Monolith to Microservices Handbook
- Become an Elite Team With Dora Metrics
- Applying the Test Pyramid Concept to Ruby on Rails Apps
- Enhancing Security of Secrets: Project Whitelists and Admin-only Edit Permissions
- Pre-flight Checks: Set up Custom Security Checks for Pipeline Execution
- Semantic Versioning with CI/CD
- Why You Need an API Layer and How To Build It in React
- JavaScript’s Newest Framework: Bun. Will It Take Node’s Crown?
- A Developer’s Guide to Terraform
- How to Restructure Your Organization for Microservice Applications
- When Microservices Are a Bad Idea
- Testing Strategies For Microservices
- 5 Options for Deploying Microservices
- 12 Ways to Improve Your Monolith Before Transitioning to Microservices
- Release Management for Microservices
- Introducing Bitbucket integration in Semaphore
- AWS Serverless With Monorepos
- What’s New in Test Reports
- Domain-Driven Design Principles for Microservices
- What Is Microservice Architecture?
- Why End-to-End (E2E) Testing is Often Good Enough
- How To Deploy a Go Web Application with Docker
- Semaphore Artifacts: a Fast and Secure Way to Store Data on Your Projects
- Building Go Microservice with Gin and CI/CD
- 5 Ways to Run Faster CI/CD Builds
- CI/CD for Microservices on DigitalOcean Kubernetes
- CI/CD for Microservice Spring Boot
- Dockerizing a PHP Application
- Dockerizing a Python Django Web Application
- 30 Common CI/CD Interview Questions (with Answers)
- Dockerizing a Ruby on Rails Application
- Automate Flutter App Deployment on iOS to TestFlight using Fastlane and Semaphore
- Customers Name Semaphore as Top Performing CI/CD Tool
- 21 Tips to Write Better Posts for Developers
- A Complete Guide to Optimizing Slow Tests
- Interviewing Engineers at Semaphore
- 10 Books Every Senior Engineer Should Read
- Introducing Semaphore On-Premise: Host Your CI/CD behind Your Company Firewall
- Premium Support Packages in Semaphore
- Behavior-Driven Development
- The Testing Pyramid: How to Structure Your Test Suite
- A Deep Dive into Unit Testing
- Do You Need to Test Everything?
- Smoke Testing Keeps Your Delivery Pipeline Safe and Sound
- The 6 Principles of Test Automation
- How to Introduce Testing in Teams and Companies
- The Economics of TDD
- 9 Ways To Make Slow Tests Faster
- Introducing Self-Hosted Agents
- Getting Integration Testing Right
- 5-Step Strategy for Optimizing Slow Tests
- What is a Flaky Test? How to Fix Flaky Tests?
- Run Bazel Build on Semaphore
- Deploy Flutter (iOS) Apps to Testers using Firebase App Distribution with Semaphore
- Feature Flags: A Gentle Introduction
2021 46
- Top 10 Semaphore Uncut Episodes in 2021
- Architecting Scalable React Native Apps
- Test-Driven Development (TDD): A Time-Tested Recipe for Quality Software
- Change Management for Containers
- Continuous Integration for Flutter Apps on iOS with Semaphore
- Introducing Test Reports: Embrace Perfect Clarity for your CI/CD Test Suite
- UI Testing in Swift
- The Benefits of Acceptance Testing
- Continuous Container Vulnerability Testing with Trivy
- Deploy Flutter Apps on Android to Testers Using Firebase App Distribution with Semaphore
- 46+ Best Podcasts for Developers You Should Be Following
- CI/CD Pipeline: A Gentle Introduction
- Secure Your Kubernetes Deployments
- React Native CI/CD for Android – Fastlane + Semaphore
- Asynchronous Testing in Swift
- Structure Testing for Docker Containers
- What is Bazel – Tutorial, Examples, and Advantages
- Revving up Continuous Integration with Parallel Testing
- Beyond Docker with Earthly
- TypeScript Monorepos with Yarn
- Unit Testing in Swift
- Introducing the Second Edition of the CI/CD with Docker and Kubernetes eBook
- Build, Test and Ship React Native Apps (iOS) Using Fastlane and Semaphore
- New Book: CI/CD for Monorepos
- 20 Types of Tests Every Developer Should Know
- Talking Semaphore Origins on Code Story
- Automating Testing in Flutter 2.0
- What’s New in Summer 2021
- JavaScript Monorepos with Lerna
- WWDC 2021: 8 Major Highlights for Apple Developers
- Testing React Native Apps
- Building Python Projects at Scale with Pants
- A First Look at AWS App Runner
- Talking CI/CD for HostingAdvice.com
- What is Flutter? The Game Changer in Application Development
- How to Test Jupyter Notebooks with Pytest and Nbmake
- Scaling out JavaScript Monorepos with Yarn Workspaces
- Continuous Integration for Monorepos
- Automated Testing: The Cornerstone of CI/CD
- Talking Simplicity and Purpose in Software on New Relic’s Podcast
- Monorepo Support Is Now Generally Available
- Design an Effective Build Stage for Continuous Integration
- What is monorepo? (and should you use it?)
- What’s New in Spring 2021
- Talking CI/CD on Changelog’s Go Time Podcast
- Kubernetes vs Docker: Understanding Containers in 2022
2020 37
- How to Connect to VPN in CI/CD Pipelines
- 3 Steps to Eradicate Flaky CI Builds
- What’s New in Winter 2020
- Reproducible Node Builds With npm ci
- Android Continuous Integration and Deployment Tutorial
- Xcode 12 Is Now Available in macOS Catalina Image
- What’s New in Semaphore – Autumn 2020
- Continuous Blue-Green Deployments With Kubernetes
- What Is Canary Deployment?
- Refreshed New UI for a Greater CI/CD Experience
- How to Run Cloud-based Cron Jobs with Semaphore
- What Is Blue-Green Deployment?
- Continuous Integration with Deno
- New Book: CI/CD with Docker and Kubernetes
- Xcode 11.5 Is Now Available in macOS Catalina Image
- Mocking in Ruby with Minitest
- Getting Started with Gulp.js
- What Is React Native? The Rise of Hybrid Mobile Apps
- Testing a Java Spring Boot REST API with Karate
- Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL
- Fresh New Semaphore – the Unbeatable Speed for the Next-Generation Technology Leaders
- How to Test Rails Models with RSpec
- Getting Started with Node.js and Mocha
- Getting Started with PHPUnit in Laravel
- Getting Started with RSpec
- How To Build and Deploy a Node.js Application To DigitalOcean Kubernetes Using CI/CD
- A Step-by-Step Guide to Continuous Deployment on Kubernetes
- Stubbing and Mocking in Java with the Spock Testing Framework
- Build, Test, & Deploy an iOS App with CI/CD
- How to Release Faster with Continuous Delivery for Google Kubernetes
- Continuous Integration and Delivery to AWS Kubernetes
- Testing Python Applications with Pytest
- A CI/CD Pipeline for Serverless Cloudflare Workers
- Serverless CI/CD and hosting with Semaphore and ZEIT Now
- Stubbing and Mocking with Mockito and JUnit
- Docker Image Size – Does It Matter?
- Continuous Deployment of a Python Flask Application with Docker and Semaphore
2019 31
- 7 Continuous Integration Tools for PHP Laravel Developers
- Python Continuous Integration and Deployment From Scratch
- Semaphore 2.0 Welcomes Open Source Developers with Free Continuous Integration
- In Continuous Integration, Run Fast and Fundamental Tests First
- Benchmark Report: Docker Builds with Semaphore vs. Docker Hub
- Visual Workflow Builder: Build CI/CD Pipelines Without Writing YAML
- iOS CI/CD: Continuous Integration and Continuous Delivery Explained
- CI/CD: Integração Contínua e Entrega Contínua Explicadas
- CI/CD: Kontinuierliche Integration & Lieferung erklärt
- CI/CD: Continuous Integration & Delivery Explained
- iOS 13: The Top 5 Features Your App Needs Now
- Introducing CI/CD Pipeline Dependencies
- Scaling an Open Source mobile app with an ex-Googler Tim Cheadle
- Kubernetes Deployments: The Ultimate Guide
- Integração Contínua (CI) Explicada
- Kontinuierliche Integration (CI) erklärt
- Continuous Integration (CI) Explained
- Launching Semaphore Podcast: The Uncut Chats
- Define your CI/CD environment with Docker
- Introducing Semaphore for iOS, a supercharged CI/CD service
- A first look at Google Cloud Run
- Why a Well-Oiled CI/CD Pipeline Makes for a Happy DevOps Team
- When SREs and Kubernetes Are Worth It And When They Aren’t
- Two Key Docker Benefits and How to Attain Them
- Introducing a Next-generation Parallel Config Management tool
- Docker’s Gareth Rushgrove on the Importance of CI/CD Pipelines and the Future of Containers
- Introducing Quantum Job Processing with Semaphore Qujobs
- On the Importance of Observability-Driven Software Development
- Red Hat’s Michael Hausenblas on the Ailments of Cloud-Native
- On How DevOps Destroys Walls, Builds Bridges, and Influences Company Culture for the Better
- Travis CI Alternative for Private Projects
2018 43
- Kubernetes Pioneer Tim Hockin on the State of Kubernetes 2018
- Why Cloud Native Success Depends on High-Velocity CI/CD
- Semaphore Uncut: CI/CD Slack Notifications
- On Transitioning from a Developer Role to Strategic Business Role
- Semaphore Uncut: Semaphore Classic vs. 2.0
- Semaphore 2.0 launched with customizable CI/CD pipelines, autoscaling and more
- Semaphore Uncut: Exploring Semaphore Agents
- Semaphore Uncut: Faster CI/CD Pipelines with Dependency Caching
- Semaphore Uncut: On-demand Debug Sessions
- Semaphore Uncut: Debugging Running CI Jobs
- Semaphore Uncut: Customizable CI/CD Dashboards
- On Prioritizing Performance and Usability with Slim.js Creator
- Semaphore Uncut: Auto-promotion of Continuous Delivery Pipelines
- Semaphore Uncut: A First Look at Semaphore 2.0
- Continuous Delivery Patterns with Serverless Applications
- Introducing Semaphore 2.0, Next Generation CI/CD
- A Practical Guide to Test Doubles in Elixir
- Something’s coming
- Rails Testing Handbook Available for Kindle
- Continuous Integration with Docker Gets More Space with New Semaphore Platform
- Doubled Free CI/CD Capacity for Open Source
- Faster Rails CI with Automated Parallel Testing Available to All
- Setting up a BDD Stack on a Rails 5 Application
- Running Applications on a Docker Swarm Mode Cluster
- Rails Testing Antipatterns: Models
- Rails Testing Antipatterns: Fixtures and Factories
- Working Effectively with Data Factories Using FactoryBot
- Lies, Damn Lies, and the State of Testing in Rails
- Rails Testing Handbook: A Free Ebook to Help You Build Better Apps
- How to Deploy Rails Applications With Ansible, Capistrano and Semaphore
- PhantomJS Is Dead, Use Chrome Headless in Continuous Integration
- How Kajabi Got to a 10-minute CI Build for 100k Lines of Rails Code
- Testing Middleware in Laravel with PHPUnit
- Easier Secrets Management Through the Semaphore UI
- On Building a React Native CLI
- 7 Ways Continuous Delivery Helps Build a Culture of Learning
- Our 2018 Internal Hackathon: Things Built and Problems Solved
- How par8o Sped up Rails CI Builds 8x with Semaphore Boosters
- Updating Services in a Docker Swarm Mode Cluster
- Dec 12-17 Network Incident Report
- On Building a Container Engine
- On Building Open Source Solutions
- Top 10 Semaphore Posts in 2017
2017 71
- Testing Angular 2 and Continuous Integration with Jest
- Semaphore CLI: Forming a Base for a Programmable Semaphore
- Easy Continuous Deployment for Firebase using Semaphore
- Node.js Versions Used in Commercial Projects in 2017
- Track Total Weekly CI/CD Waiting Time with Speed Insights
- Ruby Versions Used in Commercial Projects in 2017
- Continuous Delivery of Laravel Applications to Heroku
- Semaphore’s Continuous Integration Service is Now 15% Faster
- PHP Versions Used in Commercial Projects in 2017
- Rails Testing Grader: Compare Your Test Suite to the Industry
- Python Versions Used in Commercial Projects in 2017
- Easy Team Management for Large Organizations Through Semaphore API v2
- Integration Testing Your HTTP API with Cucumber
- Working Away — Semaphore Team at Mokrin House
- Semaphore and Nanobox – Continuous Integration the Easy Way
- Introducing the new Semaphore API
- Continuous Integration and Delivery with Semaphore on GitHub Marketplace
- Continuous Integration with Docker Compose
- Cancellation Strategy for the Default Branch
- Test-Driving a Stream-powered Elixir Library
- Continuous Deployment of an Elixir Phoenix Application to Heroku with Semaphore
- Rails Techniques: Using Polymorphic Associations
- Faster Rails: Eliminating N+1 queries
- Tips on Treating Flakiness in your Rails Test Suite
- Setting Up Continuous Integration for an Elixir Project Using Semaphore
- What’s the Difference Between Continuous Integration, Continuous Deployment and Continuous Delivery?
- Consuming Services in a Docker Swarm Mode Cluster
- A First Look at Semaphore’s New API Specification Semantic
- RESTful Integration Testing with WireMock in Java
- Writing, Testing, and Deploying a Django API to Heroku with Semaphore
- Building and Testing Web Applications with Elm
- Faster Rails: Indexing Large Database Tables Without Downtime
- Speeding Up Rendering Rails Pages with render_async
- Creating a Heroku-like Deployment Solution with Docker
- Managing Secrets in Docker Swarm
- Scheduling Services on a Docker Swarm Mode Cluster
- Introducing Boosters: Move Faster with Automatic Parallel Testing
- Getting Started with Vagrant
- How the Team at 500px Moves Faster with Semaphore
- Writing and Testing an Event Sourcing Microservice with Kafka and Go
- Faster Rails: Is Your Database Properly Indexed?
- Perfection is Useless
- Generating Fake Data for Python Unit Tests with Faker
- Introduction to Ansible
- Fast Failing: Introducing Faster Feedback on Failing Builds
- Flaky Tests: Are You Sure You Want to Retry Them?
- Bootstrapping a Docker Swarm Mode Cluster
- Customizable Command Timeouts
- 5 Tips for More Effective Capybara Tests
- Continuous Deployment of a Dockerized Node.js Application to AWS ECS
- Packaging and Deploying Go Applications to AWS using Semaphore
- The Cracking Monolith: The Forces That Call for Microservices
- Measure and Improve Your CI Speed with Semaphore
- Faster Rails: How to Check if a Record Exists
- Celebrate Continuous Delivery in Slack with New Semaphore Notifications
- Getting Started with Mocking in Python
- Making a Mailing Microservice with Elixir and RabbitMQ
- What is Proper Continuous Integration?
- Testing Routes in Angular 2
- End-to-end Testing in Elixir with Hound
- Stubbing the AWS SDK
- Moving Platform Updates to Changelog
- Testing Topologies in Kafka Streams
- Migrating from Snap CI to Semaphore
- Continuous Deployment with Google Container Engine and Kubernetes
- Testing React Components with AVA
- Integration Testing Phoenix with Wallaby
- Integration Testing Ruby on Rails with Minitest and Capybara
- Platform Update on January 24th
- Snapshot Testing React Components with Jest
- Keeping Logs Available When Rebuilding a Build
2016 81
- Top 10 Semaphore Community Tutorials in 2016
- Ruby 2.4.0 Available In a Minor Platform Update
- Unit Testing Chef Guard Clauses: Command Strings vs. Ruby Blocks
- Building and Testing an API Wrapper in Python
- Lightweight Docker Images in 5 Steps
- Getting Started with BDD in Go Using Ginkgo
- Activity Monitor: Visualizing Your Team’s Running CI/CD Processes
- PHP Versions Used in Commercial Projects, 2016 Edition
- Testing Common Redux Patterns in React Using AVA
- How to Capture All Errors Returned by a Function Call in Elixir
- Continuous Deployment of Golden Images with Packer and Semaphore
- Dockerizing a Java Play Application
- Platform Update on November 22nd
- Python Versions Used in Commercial Projects, 2016 Edition
- Sending ECS Service Logs to the ELK Stack
- Testing Services in Angular 2
- How BDD and Continuous Delivery Help Developers Maintain Flow
- Introduction to Testing Elixir Applications with ExUnit
- Getting Started with Create React App and AVA
- Using Page Objects with Protractor and Cucumber in Angular Applications
- Platform Update on October 25th
- Designing Testable Lambda Functions
- Getting Started with Node.js and LoopBack
- Node.js Versions Used in Commercial Projects, 2016 Edition
- Build and Deploy a Java Web Application with Docker and Semaphore
- Ruby Versions Used in Commercial Projects, 2016 Edition
- Using RSpec Metadata
- Video Tutorials on Setting up Continuous Integration and Deployment with Semaphore
- Minor platform update on September 29th
- Test-driven Development of Go Web Applications with Gin
- Mocks and Monkeypatching in Python
- Testing Components in Angular 2 with Jasmine
- Platform Update on September 27th
- How to Test in Go
- Continuous Deployment for Static Sites with Docker, AWS, and Ansible
- Testing Angular 2 HTTP Services with Jasmine
- Isolate Side Effects in Ruby
- How to Reduce Controller Bloat with Interactors in Ruby
- How to Test React and MobX with Jest
- Setting Up Angular 2 with Webpack
- Platform Update on August 23rd
- An Approach to Testing Your User Interface More Efficiently
- How to Test Rails Models with Minitest
- Getting Started with Protractor and Cucumber
- Mocking External HTTP Requests in Node Tests with Nock
- Platform Update on July 26th
- Dockerizing Elixir and Phoenix Applications
- Continuous Deployment with Docker, AWS, and Ansible
- Continuous Delivery of Docker Images with Quay and Semaphore
- A TDD Approach to Building a Todo API Using Node.js and MongoDB
- Testing REST Endpoints Using REST Assured
- Announcing Preview of Semaphore Enterprise Continuous Integration and Delivery
- Continuous Delivery of Docker Images with Google Container Registry and Semaphore
- Test-Driving Ember.js CRUD Operations
- Continuous Delivery of Docker Images with Docker Hub and Semaphore
- Platform Update on June 21st
- How to Use Godog for Behavior-driven Development in Go
- Continuous Delivery of Docker Images with Amazon ECR and Semaphore
- A TDD Approach to Parsing OFX Banking Data in Java
- Continuous Integration and Deployment for Docker
- Getting Started with TDD in React
- How to Perform Integration Testing on Go Applications with Docker
- Platform Update on May 24th
- How to Split JUnit Tests in a Continuous Integration Environment
- Platform Update on April 26th
- Elements of a Continuous Deployment Workflow
- Protect Your Semaphore Account with Two-Step Verification
- Testing React Components with Enzyme and Mocha
- Platform Update on March 22nd
- Developing a Test-Driven Front-End with Ember.js
- Continuous Integration with Bitbucket Has Just Got Better
- Test-Driving Ember.js Components
- Testing Mixins in Isolation with Minitest and RSpec
- Platform Update on February 23rd
- Scheduled downtime
- Testing Python-Requests with Betamax
- Stubbing External Services in Rails
- New Server Page: A Better Overview of Continuous Deployment
- New Dashboard: Simpler, Faster, Responsive
- Test-Driven APIs with Phoenix and Elixir
- Platform Update on January 19th
2015 87
- Building and Deploying Microservices with AWS Lambda and Semaphore
- Fast Continuous Delivery of Microservices with AWS Lambda
- Platform Update on December 22nd
- Node.js Version Usage in Commercial Projects, 2015 Edition
- How to Deploy a Node.js Application to Elastic Beanstalk with Semaphore
- Best Practices for Spies, Stubs and Mocks in Sinon.js
- Ruby Version Usage in Commercial Projects, 2015 Edition
- Getting Started with Minitest
- Introducing Semaphore Insights: Find Test Files That Slow You Down
- Behavior-Driven Rails 5 API for an Ember.js Application
- Platform update on November 24th
- Setting Up a BDD Stack on a Django Application
- Introduction to Verifying Doubles in RSpec
- On Bootstrapping a New Product
- BDD Testing a Restful Web Application in Python
- Introducing Easy Continuous Deployment to Amazon S3
- Continuous Deployment with Phoenix 1.0 via Semaphore
- Setting Up an End-to-End Testing Workflow with Gulp, Mocha, and WebdriverIO
- How to Deploy a Ruby on Rails Application to Elastic Beanstalk with Semaphore
- Introducing Easy Continuous Deployment to AWS Elastic Beanstalk
- Platform Update on October 20th
- Getting Started with Behavior Testing in Python with Behave
- Build Commands Editor 2.0
- Testing Ansible Roles on Multiple Operating Systems with Docker and Semaphore
- Diamond Kata – TDD with only Property-Based Tests
- Test-Driving Ember.js Models
- Platform update on September 22nd
- A Hands-On Introduction to ScalaTest
- Fine-Grained Control Over Chat Notifications
- Introducing Python Continuous Integration on Semaphore
- How to Add Integration Tests to a Play Framework Application Using Scala
- Ruby 2.1.7 Available In a Minor Platform Update
- Testing Ansible Roles with Semaphore
- Platform update on August 25th
- Writing One-Liner RSpec Tests in Rails with Shoulda-Matchers
- Getting Started with BDD in Laravel
- Video Tutorial – Continuous Integration and Deployment for Elixir
- Introduction to Writing Acceptance Tests with Cucumber
- Python and JRuby 9.0.0.0 Available In a Minor Platform Update
- How to Use Custom RSpec Matchers to Specify Behaviour
- Platform update on July 21st
- How to Set Up a Clojure Environment with Ansible
- Introducing Continuous Integration for Go on Semaphore
- Platform update on June 23rd
- How to Use Capistrano to Deploy a Rails Application to a Puma Server
- Applying BDD to Ruby on Rails Web Applications
- Platform update on May 19th
- Elixir Continuous Integration Now Available on Semaphore
- Platform update on April 21st
- Get Paid to Write Tutorials
- Scala Support on Semaphore
- Automatic Security Testing of Rails Applications Using Brakeman
- Unit Tests for Chef Cookbooks With ChefSpec
- Testing Clojure With Expectations
- Testing Clojure Web Applications with Selenium
- Testing Clojure web applications with Kerodon
- Setting Up the BDD Stack on a New Rails 4 Application
- RSpec Subject, Helpers, Hooks and Exception Handling
- NPM – Node.js package manager
- Mocking with RSpec: Doubles and Expectations
- Integration testing PHP applications with Behat
- Integration Testing for Chef-Driven Infrastructure with Test Kitchen
- Ideas for Semaphore Community Articles
- How to write a custom Kerodon matcher
- How to Write an Article for Semaphore Blog
- How to Format Semaphore Tutorials for Publishing
- How to Deploy Node.js Applications with Capistrano
- How to Deploy a Compojure Application to OpenShift
- Introduction to Gradle
- Getting Started with SSH
- Getting Started with Node.js and Jasmine
- Getting Started with Composer for PHP Dependency Management
- Getting started with Grunt.js
- Deploying PHP Applications with Rocketeer and Docker
- How to Deploy Sinatra Applications with Capistrano
- Why We Need Continuous Integration
- Continuous Integration and Deployment of PHP applications from GitHub to Heroku with Semaphore
- Introduction to Chef
- Announcing Semaphore Community
- Platform update on March 24th
- We Moved from SemaphoreApp.com to semaphore.io
- Adapting to Third-party Application Restrictions on GitHub
- Platform update on February 24th
- Schedule Continuous Integration Builds Easily
- SSH Access to Your CI Environment
- Visualizing the Deployment Pipeline
- Platform update on January 20th
2014 53
- Ruby 2.2.0 Available In a Minor Platform Update
- Smarter Email Notifications
- Platform update on December 23rd
- Queued Builds Cancellation
- High Priority Branches
- Updated PhantomJS 1.9.8 In a Minor Platform Update
- One Place for All Email Notification Settings
- Meteor.js: Getting Started
- Platform update on November 24th
- BDD on Rails with Minitest, Part 2: Implementing a Feature
- Ruby 2.1.4 Available In a Minor Platform Update
- Build queue issues
- BDD on Rails with Minitest, Part 1: Up and Running
- Upcoming Platform Update on October 23rd
- Continuous Integration for Bitbucket Projects on Semaphore
- Deploy from your chat room
- A Look Inside Development at 500px
- Testing Clojure With Expectations
- Introducing Upcoming Platform Update, Selectable Platform Versions and Ubuntu 14.04 Support
- Semaphore stickers are here
- On Working With A Safety Net with Michael Siegfried, Senior Engineer at Procore
- Ruby version usage in commercial projects, 2014 edition
- Semaphore Gets a Free Plan For Private and Open Source Projects
- More Flexibile Connection Between Semaphore Projects And GitHub Repositories
- Introducing User Profiles
- On Writing Clear Code with Jason Hutchens, Chief Scientist at Agworld
- Introducing Organizations
- Improved Project Collaboration Management
- TDD Antipatterns: Local Hero
- Upcoming Platform Update on July 7th
- TDD Antipatterns: The Free Ride
- Continuous Integration and Deployment of PHP applications from GitHub to Heroku with Semaphore
- Introducing Continuous Integration For PHP Projects On Semaphore
- Upcoming Platform Update on May 28th
- New Navigation Design
- Introducing RubyGems Mirror
- Ruby 2.1.2 Support
- Easier Way To Manage Environment Variables
- MySQL Strict Mode And You
- Trigger a Deploy Over API And More Updates
- Upcoming Platform Update on May 5th
- Heartbleed
- A New Way To Read Build Results
- Managing Externals in Ruby Tests
- New Build and Deploy Emails
- Slack Integration
- Upcoming Platform Update on March 5
- Building Pull Requests From Forked Repos
- Clojure on Semaphore
- Webhooks API and More Updates
- Rails Testing Antipatterns: Controllers
- Hands-free deployment of static websites
- Announcing Support for JavaScript and Node.js Projects on Semaphore
2013 35
- December platform update with Ruby 2.1.0 final, Grunt, Leiningen & more
- Upgrade your paranoia with Brakeman
- Platform update: secure rubies
- Capistrano 3 Upgrade Guide
- Custom Configuration Files
- How to use different Gemfiles with Bundler
- Ruby version usage in commercial projects
- Platform update: Ruby 2.1 preview, locale, new Postgres, MongoDB, Firefox
- Growing our team – get ready for new greatness
- RubyGems update and JRuby 1.7.5
- Post-thread commands
- Platform update feat. git, browsers
- Continuous delivery via Cloud66
- Multi-deployment approaches
- Semaphore partners with Code Climate to provide test coverage service
- Improved repository caching
- Setting up the BDD stack on a new Rails 4 application
- Introducing continuous deployment
- Exploring CasperJS and Continuous Integration
- Book review: Growing object-oriented software, guided by tests
- Upcoming platform update
- Testing Rails apps that use Pusher with pusher-fake
- Setting up Jasmine JavaScript tests for continuous integration
- Heroku add-on goes public
- Introducing the project timeline
- ProjectMonitor, BuildHeroes and Coveralls integrate with Semaphore
- Automatically run your Cucumber tests in parallel with cucumber_in_groups
- Why we don’t play dirty to market our product
- API for build information and build log
- Heroku add-on update and new blog
- Semaphore pricing update with higher plans
- CLIs and tools for Semaphore
- Parallelism with up to 5 threads available
- Passwordless sudo for all
- Build platform upgrade
2012 12
- Skip those builds
- Semaphore can now parallelize your builds
- Semaphore API grows
- New notifications screen in Semaphore, Flowdock integration
- Semaphore API
- Semaphore implements GitHub’s Commit Status API in record time
- Live build log and other UI improvements in Semaphore
- Semaphore gets a better Solo plan, supports PhantomJS, Firefox 13, PostgreSQL 9.1, HipChat
- Campfire notifications and more Ruby versions now available in Semaphore
- Semaphore launched
- Semaphore gets customizable build commands
- Introducing Semaphore