Skip to content

devantler-tech/reusable-workflows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

DevantlerTech GitHub Reusable Workflows 🚀

Note

To see DevantlerTech's Actions, please visit the devantler-tech/actions repository.

Welcome to the DevantlerTech GitHub Reusable Workflows repository! This repository contains reusable workflows designed to streamline your CI/CD processes. These actions are used across all DevantlerTech projects, ensuring consistency and efficiency.

The below diagram illustrates the relationship between GitHub Workflows and GitHub Actions.

---
title: GitHub Actions Relationship Diagram
---
flowchart TD
  A[Workflows] --> B[Jobs]
  B --> C([***Reusable Workflows***])
  B --> D[Steps]
  C --> D
  C --> B
  D --> E[Actions]
  E -.- F([Composite Actions])
  F --> D
  E -.- G([JavaScript Actions])
  E -.- H([Docker Container Actions])
Loading

Reusable Workflows

Reusable workflows are designed to encapsulate common CI/CD patterns that can be shared across multiple repositories. They allow you to define a workflow once and reuse it in the job-scope of other workflows. This reduces duplication and enables building generic workflows for common tasks.

CD - Cluster Bootstrap

Click to expand

.github/workflows/cd-cluster-bootstrap.yaml is a workflow used to bootstrap a cluster on the DevantlerTech platform. It installs core components like Cilium and Flux.

Usage

To use this reusable workflow, you can include it in your workflow file as follows:

jobs:
  bootstrap-cluster:
    uses: devantler-tech/reusable-workflows/.github/workflows/cd-cluster-bootstrap.yaml@{ref} # ref
    secrets:
      KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
      SOPS_AGE_KEY: ${{ secrets.SOPS_AGE_KEY }}
    with:
      DEPLOYMENT_ENV: dev

Secrets and Inputs

Key Type Default Required Description
KUBE_CONFIG Secret - Kubernetes config file
SOPS_AGE_KEY Secret - Age key for SOPS
DEPLOYMENT_ENV Input (string) dev Deployment environment

CD - .NET Application Publish

Click to expand

.github/workflows/cd-dotnet-application-publish.yaml is a workflow used to publish .NET applications.

Usage

jobs:
  publish-application:
    uses: devantler-tech/reusable-workflows/.github/workflows/cd-dotnet-application-publish.yaml@{ref} # ref
    secrets:
      NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}

Secrets and Inputs

Key Type Default Required Description
NUGET_API_KEY Secret - NuGet API key

CD - .NET Library Publish

Click to expand

.github/workflows/cd-dotnet-library-publish.yaml is a workflow used to publish .NET libraries to NuGet and GHCR.

Usage

jobs:
  publish-library:
    uses: devantler-tech/reusable-workflows/.github/workflows/cd-dotnet-library-publish.yaml@{ref} # ref
    secrets:
      NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}

Secrets and Inputs

Key Type Default Required Description
NUGET_API_KEY Secret - NuGet API key

CD - GitOps Deploy

Click to expand

.github/workflows/cd-gitops-deploy.yaml is a workflow used to deploy applications using GitOps with Flux.

Usage

jobs:
  gitops-deploy:
    uses: devantler-tech/reusable-workflows/.github/workflows/cd-gitops-deploy.yaml@{ref} # ref
    secrets:
      KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
      SOPS_AGE_KEY: ${{ secrets.SOPS_AGE_KEY }}
    with:
      DEPLOYMENT_ENV: dev

Secrets and Inputs

Key Type Default Required Description
KUBE_CONFIG Secret - Kubernetes config file
SOPS_AGE_KEY Secret - Age key for SOPS
DEPLOYMENT_ENV Input (string) dev Deployment environment

CD - Pages Publish

Click to expand

.github/workflows/cd-pages-publish.yaml is a workflow used to build and publish a Jekyll site to GitHub Pages.

Usage

jobs:
  pages:
    uses: devantler-tech/reusable-workflows/.github/workflows/cd-pages-publish.yaml@{ref} # ref
    with:
      RUBY_VERSION: "3.3" # optional
      JEKYLL_ENV: production # optional
      EXTRA_BUILD_ARGS: "" # optional, e.g. '--future'

Secrets and Inputs

Key Type Default Required Description
RUBY_VERSION Input (string) 3.3 Ruby version to install
JEKYLL_ENV Input (string) production Jekyll environment
EXTRA_BUILD_ARGS Input (string) "" Extra args appended before the automatically supplied --baseurl

Outputs

Key Description
page_url Deployed Pages site URL

CI - Auto Merge

Click to expand

.github/workflows/ci-auto-merge.yaml is a workflow that automatically merges pull requests from trusted bots and maintainers.

Usage

jobs:
  auto-merge:
    uses: devantler-tech/reusable-workflows/.github/workflows/ci-auto-merge.yaml@{ref} # ref

CI - .NET Test

Click to expand

.github/workflows/ci-dotnet-test.yaml is a workflow used to test .NET solutions or projects across multiple operating systems.

Usage

jobs:
  dotnet-test:
    uses: devantler-tech/reusable-workflows/.github/workflows/ci-dotnet-test.yaml@{ref} # ref
    secrets:
      CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

Secrets and Inputs

Key Type Default Required Description
CODECOV_TOKEN Secret - Codecov token

CI - GitOps Test

Click to expand

.github/workflows/ci-gitops-test.yaml is a workflow used to test GitOps configurations with Flux.

Usage

jobs:
  gitops-test:
    uses: devantler-tech/reusable-workflows/.github/workflows/ci-gitops-test.yaml@{ref} # ref
    secrets:
      KSAIL_SOPS_KEY: ${{ secrets.KSAIL_SOPS_KEY }}
    with:
      HOSTS_FILE: hosts
      ROOT_CA_CERT_FILE: root-ca.crt

Secrets and Inputs

Key Type Default Required Description
KSAIL_SOPS_KEY Secret - SOPS Age key for KSail
HOSTS_FILE Input (string) - Path to hosts file for testing
ROOT_CA_CERT_FILE Input (string) - Path to root CA certificate file

CI - GitOps Validate

Click to expand

.github/workflows/ci-gitops-validate.yaml is a workflow used to validate GitOps cluster configurations.

Usage

jobs:
  gitops-validate:
    uses: devantler-tech/reusable-workflows/.github/workflows/ci-gitops-validate.yaml@{ref} # ref

Release

Click to expand

.github/workflows/release.yaml is a workflow used to create releases using semantic-release.

Usage

jobs:
  release:
    uses: devantler-tech/reusable-workflows/.github/workflows/release.yaml@{ref} # ref
    secrets:
      APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}

Secrets and Inputs

Key Type Default Required Description
APP_PRIVATE_KEY Secret - GitHub App private key

Sync Cluster Policies

Click to expand

.github/workflows/sync-cluster-policies.yaml is a workflow used to sync upstream Kyverno policies to a target directory.

Usage

jobs:
  sync-cluster-policies:
    uses: devantler-tech/reusable-workflows/.github/workflows/sync-cluster-policies.yaml@{ref} # ref
    secrets:
      APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
    with:
      KYVERNO_POLICIES_DIR: policies/kyverno

Secrets and Inputs

Key Type Default Required Description
APP_PRIVATE_KEY Secret - GitHub App private key
KYVERNO_POLICIES_DIR Input (string) - Directory to sync Kyverno policies to

TODOs

Click to expand

.github/workflows/todos.yaml is a workflow used to scan for TODOs in code and create GitHub issues.

Usage

jobs:
  todos:
    uses: devantler-tech/reusable-workflows/.github/workflows/todos.yaml@{ref} # ref
    secrets:
      APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}

Secrets and Inputs

Key Type Default Required Description
APP_PRIVATE_KEY Secret - GitHub App private key

Zizmor

Click to expand

.github/workflows/zizmor.yaml is a workflow used to perform static analysis on GitHub Actions workflows.

Usage

jobs:
  zizmor:
    uses: devantler-tech/reusable-workflows/.github/workflows/zizmor.yaml@{ref} # ref

About

Reusable workflows designed to streamline CI/CD processes.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •