Fix Not Found Package Errors with .staging Warnings on Npm Install

TL;DR: Clean the npm cache and the package-lock.json The other day I started to get ENOENT warning when running npm install like:

only to have the compilation failing with something like:

I’ve looked into it and the conclusion was that the error occurred because I’ve updated my node/npm version. Most answers recommend removing […]

Fix TS1144 for e.g. flex-layout

TL;DR: Update your typescript version dependency. These days we’re updating some angular apps to the most recent version (6 at the time of writing this entry). Everything is nice, with the exception of various errors we get because of the other dependencies. The most recent one was a TS1144: ‘{‘ or ‘;’ expected in one […]

Build a Django Docker Image with Cx-Oracle

TL;DR: Don’t use alpine images. There’s a glibc issue. We added a cx-oracle dependency to one of our django apps. As the previous image was just an alpine basic (python) image we needed to put in place a process to build the new image. Initially, I’ve tried to use the same alpine image (oh, the […]

Execute a Command in Every Directory with Bash

TL;DR: Use a find-based loop The other day I was wondering how to execute a command in each sub-directory of a project. In python, you have os.walk. In C, I would’ve probably written myself something just for fun etc. In shell, I know you have find which is capable of finding all directories (find (dir) […]

How to Develop Pipelines – Some Best Practices

These days I’m developing a bunch of pipelines to automatise the build/deployment process. Here are some things I’ve learned: How to develop Initially, I’ve started developing the pipeline as any other program: Create a repository, fire my editor, write a Jenkinsfile and use the Pipeline script from SCM. While the result is exactly what you […]

Sending HTTP requests with Jenkins Pipelines

As part of the CI/CD process, we might need to communicate with some external services’ APIs (e.g. notifying elastic search of a new index alias). I found an easy way to do it: Using a jenkins plugin. Jenkins plugin Jenkins has a HTTP request plugin. If you install it (or have it installed), you have […]

An Initial CI/CD Pipeline

Release-based deployments are sort of nice in the sense that you plan, draw a line, prepare stuff and release one or more components at the same time. It however stalls feature deployments a lot (e.g. a nice feature can be implemented in say a day but the release is sheduled in a month). It also […]

Copy Files From B to C via A with SSH

The other day I had an interesting situation to solve: I have some data on machine B and I want it copied on machine C. However, machines B and C have no direct connection (known_hosts), but machine A can connect to B and C without password. It is obvious that one needs to use machine […]

Run Restricted Groovy API in Jenkins

The more recent versions of Jenkins have improved on security. Unfortunately, a side-effect is that scripts which were running before would fail now. An example is:

… which would list the projects defined in Jenkins. Fortunately, you can have access to theis API via the In-process Script Approval plugin (which is installed by default). […]

Scroll to top