Skip to content

Pipeline de integración y despliegue continuo que automatiza la construcción de imágenes, análisis de código y generación de versiones.

Notifications You must be signed in to change notification settings

slice-soft/ss-pipeline

Repository files navigation

ss-pipeline — Reusable GitHub Actions Workflows

A collection of reusable GitHub Actions workflows for automating CI/CD, code analysis, Docker image builds, and release management across all SliceSoft repositories.


Available Workflows

ci-go.yml — Go CI

Runs tests, static analysis, and build for Go projects.

Inputs

  • go-version (string, optional) — Go version to use. Default: "1.21"

Steps: Go setup with cache → go mod downloadgo vetgo test with coverage → go build

jobs:
  ci:
    uses: slice-soft/ss-pipeline/.github/workflows/ci-go.yml@v0
    with:
      go-version: "1.21"

ci-node.yml — Node.js CI

Runs tests, linting, and build for Node.js projects.

Inputs

  • node-version (string, optional) — Node.js version to use. Default: "22"

Steps: Node.js setup → smart node_modules cache → install → test → lint → build

jobs:
  ci:
    uses: slice-soft/ss-pipeline/.github/workflows/ci-node.yml@v0
    with:
      node-version: "22"

build-node.yml — Node.js Build + Artifact

Checkout, npm ci, build, and upload artifact for downstream jobs.

Inputs

  • node-version — Node.js version
  • build-command — Build command. Default: npm run build
  • artifact-name (required) — Name of the uploaded artifact
  • artifact-path — Path to upload. Default: dist/
  • version — Injected as VERSION env var
  • retention-days — Artifact retention days
jobs:
  build:
    uses: slice-soft/ss-pipeline/.github/workflows/build-node.yml@v0
    with:
      artifact-name: my-dist
      version: ${{ needs.release.outputs.tag_name }}

validate-pr.yml — PR Label Validation

Validates that PRs have a semver label before merging.

Required: at least one of patch, minor, major must be present.

jobs:
  validate:
    uses: slice-soft/ss-pipeline/.github/workflows/validate-pr.yml@v0

create-release.yml — Automated Release

Generates a CHANGELOG from Conventional Commits, creates a version tag, and publishes a GitHub Release using release-please.

permissions:
  contents: write
  pull-requests: write

jobs:
  release:
    uses: slice-soft/ss-pipeline/.github/workflows/create-release.yml@v0

deploy-cdn-cloudflare.yml — CDN Deploy to Cloudflare R2

Downloads an artifact and syncs it to a Cloudflare R2 bucket. Supports versioned (v{version}/) and latest/ paths.

Inputs

  • artifact-name (required) — Artifact to download and deploy
  • destination-prefix — R2 path prefix (e.g. design-system/)
  • version — Version string (with or without v)
  • upload-latest — Also sync to latest/. Default: true

Secrets required: R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY, R2_ENDPOINT, R2_BUCKET, CDN_BASE_URL

jobs:
  deploy:
    uses: slice-soft/ss-pipeline/.github/workflows/deploy-cdn-cloudflare.yml@v0
    with:
      artifact-name: cdn-dist
      destination-prefix: design-system/
      version: ${{ needs.release.outputs.tag_name }}
    secrets: inherit

analyze-code.yml — Code Analysis

Uses GitHub Linguist to analyze the languages present in the repository and uploads a report artifact.

Inputs

  • workdir (string, optional) — Working directory. Default: "."

build-docker.yml — Docker Build & Push

Builds and publishes a Docker image to GitHub Container Registry.

Inputs

  • workdir (required) — Working directory
  • dockerfile (required) — Dockerfile path
  • image_name (required) — Docker image name
  • version (required) — Version tag for the image

Secrets: SSH_PRIVATE_KEY (required for private repo access during build)


Requirements per workflow

Workflow Requirement
ci-go.yml go.mod present, standard Go tests
ci-node.yml package.json + package-lock.json
build-node.yml package.json + package-lock.json
create-release.yml Conventional Commits, write permissions
deploy-cdn-cloudflare.yml R2 secrets configured, artifact uploaded
build-docker.yml Dockerfile, GitHub Container Registry configured

Repository Permissions

Ensure your repository has the correct settings under Settings > Actions > General:

  • Actions permissions: Allow all actions and reusable workflows
  • Workflow permissions: Read and write permissions

Commit Conventions

All SliceSoft repos follow Conventional Commits:

feat: new feature        → MINOR
fix: bug fix             → PATCH
feat!: breaking change   → MAJOR
docs: documentation
refactor: refactoring
chore: tooling / config
ci: CI/CD changes

Semver PR Labels

The validate-pr.yml workflow requires one of:

Label Meaning Version impact
patch Bug fix or small improvement 1.0.x
minor New non-breaking feature 1.x.0
major Breaking change x.0.0

Contributing

See CONTRIBUTING.md for repository-specific rules. The base workflow, commit conventions, and community standards live in ss-community.

Community

Document
CONTRIBUTING.md Workflow, commit conventions, and PR guidelines
GOVERNANCE.md Decision-making, roles, and release process
CODE_OF_CONDUCT.md Community standards
SECURITY.md How to report vulnerabilities

SliceSoft — Colombia 💙

About

Pipeline de integración y despliegue continuo que automatiza la construcción de imágenes, análisis de código y generación de versiones.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors