Welcome to the first part of a series of articles comparing CI/CD platforms. To help evaluate, compare and contrast the tools currently dominating the market, the goal will be to automate the deployment of a Flask application onto AWS Elastic Beanstalk. A new deployment will need to occur after every push to main branch, and during the series this same requirement will be implemented across a multitude of CI/CD tools.
First up, part 1 will focus on GitHub Actions, where the support for CI/CD was first announced in August 2019. I’ll document the steps taken along the way to achieve the goal with GitHub Actions, and there’s a write up of the positives and negatives in a conclusion at the end of this article. …
Git is a free and open source distributed version control system. It’s incredibly powerful and prevalent in the IT industry, meaning that having at least a basic understanding of Git is crucial for most tech roles.
The core concepts are best explained via a series of practical examples, which we will flesh out to increase your overall understanding. By the end of this 10-minute read you should have picked up the basics of Git.
Installers are available for most platforms via https://git-scm.com/.
Alternatively you can also download Desktop GUIs — examples from GitHub [Windows, Mac] and Atlassian [download Sourcetree].
Once installed, head to your console of choice and type git --version
to verify all is working. …
Bitbucket Server is organised into projects each of which contains multiple repositories. Now let’s take an example of an organisation migrating tens of thousands of repositories away from their hosted Bitbucket Server set up.
Not all of these repositories were being migrated. Many tens, if not hundreds of these projects are very old and some teams wanted to ‘cold archive’ them rather than migrate to their new Git hosting — with their choice being either S3 Glacier or GCP Coldline storage.
Note that this article is aimed at end-users rather than the administrators of a Bitbucket Server, who have access to other tools for full or partial backups. …
All the code for this guide and the workflow can be found on GitHub.
Introduction to three areas in scope of this article;
Let’s get started.
Create your GitHub repository and upload your initial Python application code.
Within the GitHub console, go into “Actions” and select “New Workflow”. GitHub will offer suggestions, but from here select “set up a workflow yourself” so you get a blank canvas. …
I recently helped out a WordPress site owner — let’s call our site owner “Joe”.
Joe was struggling to get WP Rocket working with AWS CloudFront for stylesheets and javascript. His site was already successfully using S3 and CloudFront for all its image media using the “WP Offload Media Lite” plugin.
Joe had also configured a custom subdomain for his CloudFront distribution and SSL certificate using the techniques described in the two articles below.
However, after installing the “WP Rocket” plugin and updating its CDN configuration to point at the existing CloudFront distribution, Joe’s WordPress site no longer rendered correctly.
On closer inspection, CloudFront was returning “403 Forbidden” errors for all the .css and .js files. …
Welcome to the second part of a series of articles comparing CI/CD platforms. To help evaluate, compare and contrast the tools currently dominating the market, the goal will be to automate the deployment of a Flask application onto AWS Elastic Beanstalk. A new deployment will need to occur after every push to main branch, and during the series this same requirement will be implemented across several CI/CD tools.
Our first article looked at GitHub Actions, which you can read below.
Next up, part 2 will focus on Buddy — to be found online at https://buddy.works. I’ll document the steps taken along the way to achieve the goal with Buddy, and there’s a write up of the positives and negatives in a conclusion at the end of this article. …
This small series of guides will walk through three solutions for installing Jenkins in a Docker container on Windows, along with the configuration necessary to spin up dynamic build slaves also using Docker containers.
Running locally on a personal device is perfect for individual users, freelancers, or developers looking to do local Jenkinsfile or Shared Library development and testing before pushing to a central CI/CD platform.
“You said three solutions?” Yes — this article demonstrates running the Jenkins container as root
user instead of jenkins
user. Part 1 was using Docker-in-Docker and Part 2 was to replace with a socat container. …
This small series of guides will walk through three solutions for installing Jenkins in a Docker container on Windows, along with the configuration necessary to spin up dynamic build slaves also using Docker containers.
Running locally on a personal device is perfect for individual users, freelancers, or developers looking to do local Jenkinsfile or Shared Library development and testing before pushing to a central CI/CD platform.
“You said three solutions?” Yes — this article demonstrates using socat (further reading at socat). Part 1 was using Docker-in-Docker and Part 3 is to run the Jenkins container as root user. …
This small series of guides will walk through three solutions for installing Jenkins in a Docker container on Windows, along with the configuration necessary to spin up dynamic build slaves also using Docker containers.
Running locally on a personal device is perfect for individual users, freelancers, or developers looking to do local Jenkinsfile or Shared Library development and testing before pushing to a central CI/CD platform.
“You said three solutions?” Yes — this article demonstrates using Docker-in-Docker (further reading at dind). Part 2 is using a socat container and Part 3 is to run Jenkins as root. …
There are several quick ways for developers to share code snippets within their Medium article. We’ll explore five ways in this article.
Inline code can be inserted using a single backtick character `.