Skip to content

Instantly share code, notes, and snippets.

View fernandollisboa's full-sized avatar
📚

Fernando Lisboa fernandollisboa

📚
View GitHub Profile

Photo by Jens Freudenau on Unsplash

Continuous Integration and Continuous Delivery (or Deployment) - better known as CI/CD Pipelines - is a pillar of modern software teams. Although it may sound like another buzzword, it’s actually about something very practical: automating the way code moves from your local enviroment to production.

Regardless of stack or project size, CI/CD helps answer key questions:

  • How can we merge code frequently without breaking things?
  • How do we release faster, but with less risk?

In this article we’ll break down the concepts and set up a simple pipeline using GitHub Actions. To illustrate, we’ll use a simple J

Onboarding GLS- Arda Setup

Last Update: November/2025

Hey Miner, welcome to GLS! This document is here to guide you through your first encounter with Arda. But you may ask - what is Arda?

Arda is the world in Tolkien's legendarium — and it's also the name of our entire GLS system.

You'll quickly notice that GLS is packed with Tolkien references. You'll get used seeing pieces of software named as Gandalf, Bombadil, Saruman, or Smaug. To help you navigate, we’ve prepared a special glosarry with some of the terminology you’ll encounter.

Remember that this is a living document, which means it may become outdated as things evolve. If you spot anything broken, unclear, or missing, feel free to DM @fernando.lisboa or create a brand new gist based on this one. Most importantly: **Don’t he

name: Publish Docker image to Docker Hub
on:
pull_request: {}
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN}}
DOCKER_HUB_REGISTRY: fernandollisboa/checkout-captacao
DOCKER_IMAGE: checkout-captacao
# syntax=docker/dockerfile:1
FROM ruby:3.3.0
# Install nodejs
ENV NODE_VERSION 18.19.0
RUN ARCH=$(uname -m) \
&& if [ "$ARCH" = "aarch64" ]; then \
NODE_PACKAGE_URL="https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-arm64.tar.xz"; \
else \
NODE_PACKAGE_URL="https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz"; \
{
"id": "or_wZm04dxFkFL4nz6v",
"code": "EWPOIXI493",
"amount": 500000,
"currency": "BRL",
"closed": true,
"items": [
{
"id": "oi_KeGjYRrCQCPY4bJZ",
"type": "product",

Create Rails Project

  1. Run rails new
    rails new [name] --api -T
  2. Copy your Gemfile
  3. Copy your .gitignore
  4. Copy your .rubocop.yml
  5. Install Rspec
describe('catalog promotions', () => {
beforeEach(() => {
const credentials = ['sylius', 'sylius'];
cy.login(...credentials);
cy.clickInFirst('a[href="/admin/catalog-promotions/"]');
});
// Remove .only and implement others test cases!
it('shows of especify catalog promotion exposes the correct product and discount', () => {
// Select inactive promotions in search tab
cy.get('[id="criteria_state"]').select('Inactive');