Deploying an Uberjar to Dokku
ariya.io
by
1y ago
Dokku is a self-hosted Platform-as-a-Service (PaaS) that offers a compelling alternative to popular PaaS solutions like Heroku. With built-in support for Linux containers, deploying an application on Dokku is straightforward. However, there is a lesser-known deployment method that involves sending a build artifact, such as a JAR package for Java apps, directly to Dokku. This deployment method is useful when there is a need to quickly and frequently deploy the latest version of a custom application. By skipping the process of creating a container image, developers can focus on building the arti ..read more
Visit website
Continuous Integration for React Native Apps with GitHub Actions
ariya.io
by
3y ago
For React Native mobile apps targeting Android and iOS, an easy way to setup its continuous integration is to take advantage of Actions, an automation workflow service provided by GitHub. Even better, for open-source projects, GitHub Action offers unlimited free running minutes (at the time of this writing). The advantage of React Native is a single code-base targeting two major mobile platforms, iOS and Android. However, care must be taken so that when one developer focuses on implementing features on fixing defects on Android, whatever they check in into the code will not break iOS and vice ..read more
Visit website
On GitHub Actions with MSYS2
ariya.io
by
4y ago
Thanks to the complete GitHub Actions for MSYS2, it is easier than ever to construct a continuous integration setup for building with compilers and toolchains which can run on MSYS2. The details are available on the official page, github.com/marketplace/actions/setup-msys2. However, perhaps it is best illustrated with a simple but concrete example. As usual, for this illustration, you will see the use of this simplistic Hello, world program in ANSI C. To follow along, check out its repository at github.com/ariya/hello-c90. Let us take a look at this workflow setup to build this C program with ..read more
Visit website
Cross-compiling with musl Toolchains
ariya.io
by
4y ago
When working on command-line utilities which can be useful for various platforms, from Windows on x86 to Linux on MIPS, the existence of a cross-compilation is highly attractive. A number of different binaries can be constructed conveniently from a single, typically powerful host system. Alpine Linux popularizes the use of musl a no-frills C standard library for Linux. According to its website: musl is lightweight, fast, simple, free, and strives to be correct in the sense of standards-conformance and safety. In addition, thanks to Zach van Rijn, we have a collection of static toolchains bas ..read more
Visit website
Nix Package Manager on Ubuntu or Debian
ariya.io
by
4y ago
Even though Ubuntu/Debian is equipped with its legendary powerful package manager, dpkg, in some cases, it is still beneficial to take advantage of Nix, a purely functional package manager. The complete manual of Nix does a fantastic job on explaining how to install and use it. But for the impatients among you, here is a quick overview. Note that this also works well when using Ubuntu/Debian under WSL (Windows Subsystem for Linux, both the original and the newest WSL 2. First, create the /nix directory owned by you (this is the common single-user installation): $ sudo mkdir /nix $ sudo chown ..read more
Visit website
Practical Testing of Firebase Projects
ariya.io
by
4y ago
Your little Firebase project is getting bigger every day? Never underestimate the need to establish a solid and firm integration tests from the get go. Once you start to utilize various features of Firebase, from Hosting, Functions, and Firestore, it is imperative to incorporate practical local testing as soon as possible. Not only it will save you from some potential nightmares down the road, it can also facilitate faster iterations and quick(er) turn-around time during refactoring and feature implementation. Here is a few random suggestions to get you started. To follow along, you can also c ..read more
Visit website
Search Box and Cloud Function
ariya.io
by
4y ago
For a blog hosted with Firebase Hosting, it turns out that a little search box is fairly easy to implement by using Cloud Functions for Firebase. As with the current trend nowadays, this blog is a static site prepared with Hugo and deployed to Firebase (see my previous blog: Static Site with Hugo and Firebase). Some time ago, I realizde that since I am using Firebase anyway, might as well take advantage of its Cloud Functions to add a little search functionality to the blog, particularly for its 404 page. Of course, I am cheating a little bit. Using the above search box actually just redir ..read more
Visit website
Automatic Merge of Pull Requests
ariya.io
by
4y ago
After using Azure DevOps for a while, I am totally sold on its Auto Complete feature for pull requests. While it does not apply universally, I do believe that any development process should be at the level where merging pull requests, or generalizing it, integrating all forms of contribution, should be as automatic and as hassle-free as possible. If you are not familiar yet with Azure DevOps, it is basically a pay-as-you-go service for code repositories, automatic build runs, task tracker, artifact management, etc. Azure DevOps is pretty much comparable to various other similar services, such ..read more
Visit website
Clang on Windows
ariya.io
by
4y ago
Thanks to the MSYS2 project, now there is an easy way to utilize Clang to build C/C++ application on Windows. This works equally well for both 32-bit and 64-bit programs. MSYS2 is a fantastic (and better) reimagination of Cygwin, it is like taking the best part of a typical modern Unix environment (a familiar shell, a general collection of utilities, a porting layer, a package manager, and so on) while still working on Windows. Bootstrapping into MSYS2 is easy, either install it directly (using the GUI installer) or use Chocolatey: choco install msys2. Once inside its shell, pacman is the go ..read more
Visit website
Continuous Integration of Vanilla C Programs for Intel, ARM, and MIPS Architecture
ariya.io
by
5y ago
Developing cross-platform applications presents a major challenge:, how to ensure that every commit does not break some combinations of operating systems and CPU architectures. Fortunately, thanks an array of online services and open-source tools, this challenge becomes easier to tackle. For this demo, I have the traditional Hello, world program written in ANSI C/C90 at this repository: github.com/ariya/hello-c90 (feel free to take a look). The objective is to verify its automatic build (for the purpose of continuous integration) for a number of different CPU architectures, operating systems ..read more
Visit website

Follow ariya.io on FeedSpot

Continue with Google
Continue with Apple
OR