February 2014 Summaries
5 posts from Semaphore
Filter
Month:
Year:
Post Summaries
Back to Blog
Semaphore has introduced a new feature that supports building pull requests from forked repositories, addressing a recent change by GitHub that removed the ability to push commit status from forked to parent repositories. Previously, both the forked and parent repositories needed to be on Semaphore to view pull request status, but now, forked repositories do not need to be hosted on Semaphore. All pull requests from forks to the parent repository are tested, with build statuses posted directly on the corresponding pull request pages on GitHub, and any new commits to pull requests are automatically tested. Semaphore's dashboard now includes incoming pull requests and their statuses, displaying them alongside other branches with a distinct naming format, and they are removed from the dashboard once merged or closed.
Feb 28, 2014
184 words in the original blog post.
Semaphore has introduced official support for testing and deploying Clojure projects, marking it as the third language supported alongside Ruby and JavaScript. Setting up a Clojure project on Semaphore involves simple steps, including authorizing access to GitHub repositories and selecting a project to build, with preinstalled tools like Leiningen 2.3.4 and OpenJDK 7. Clojure is a dynamic, general-purpose language running on the Java Virtual Machine, known for its immutable data structures and support for high-performance, concurrent applications. It emphasizes simplicity through small functions grouped in namespaces, challenging traditional object-oriented paradigms with its functional programming approach. Clojure's adoption is growing, with increasing discourse about replacing legacy systems and its recommendation as a language to master. Resources for learning Clojure include tutorials, presentations, books, and the Clojure Toolbox, with a Discord community available for further discussion.
Feb 26, 2014
588 words in the original blog post.
Semaphore has introduced enhancements to its API to better accommodate a variety of workflows while maintaining user-friendliness. Notable improvements include adding a `html_url` for projects in the Project API response and enriching webhook payloads with more detailed event and project information. A significant update is the new webhooks API, allowing users to create, update, and delete webhooks via API, facilitating seamless automation of Semaphore integrations. The latest API documentation is available online, and Semaphore is actively seeking user feedback on desired features and potential integrations for future API versions. Users are encouraged to share suggestions through comments, support channels, or Discord discussions.
Feb 24, 2014
206 words in the original blog post.
The third installment in a series on antipatterns in testing Rails applications focuses on the importance of testing controllers, emphasizing that controllers, like any class, require thorough testing despite the perceived complexity of Rails' "magic." The article argues that difficulties in writing controller tests often indicate that a controller is overly complex and should be refactored to focus on a limited set of responsibilities such as parameter extraction, permission checks, and error handling. It advocates for the use of mocks and test doubles to decouple controller tests from database interactions, highlighting that controller tests should specify functional behavior without becoming bogged down in integration details. The piece concludes by asserting that while integration tests have their place, they cannot fully replace the speed and efficiency of well-designed controller specs, particularly when testing individual components and edge cases.
Feb 11, 2014
803 words in the original blog post.
Static websites are experiencing a resurgence, shifting from manually managed HTML files to using static site generators like Jekyll and Middleman, which allow content to be generated from text files tracked in version control. The rise of static site generators coincided with the browser's evolution into a robust platform for scripting and rendering, making them ideal for websites without complex application requirements. Semaphore, a continuous integration and deployment service, utilizes Middleman to automatically publish content for their blog and documentation by deploying the generated site to Amazon S3, using the S3Sync plugin and custom configuration files for credentials. This setup allows for seamless updates through Git, either locally or via GitHub's interface, with Semaphore ensuring continuous deployment after each push. The platform also introduced a "Generic" deployment strategy, enhancing flexibility by allowing any deployment steps post-build, with or without an SSH key.
Feb 05, 2014
458 words in the original blog post.