Skip to content

smartsolutionslab/orange-ci-templates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Orange CI Templates

Reusable GitHub Actions workflows for Angular, .NET, and Docker projects.

Available Workflows

Workflow Description
angular-build.yml Build Angular applications with yarn workspaces
angular-lint.yml Lint and format check Angular applications
angular-test.yml Run Angular unit tests with coverage
dotnet-build.yml Build .NET solutions
dotnet-lint.yml Format and analyze .NET code
dotnet-test.yml Run .NET tests with coverage
docker-build.yml Build and push Docker images
e2e-playwright.yml Run Playwright E2E tests
code-quality.yml CodeQL security analysis

Usage

Angular Build

jobs:
  build:
    uses: smartsolutionslab/orange-ci-templates/.github/workflows/angular-build.yml@main
    with:
      app-name: public-portal
      working-directory: src/frontend
      package-scope: '@orange-car-rental'
      environment: production

Inputs:

Input Required Default Description
app-name Yes - Angular app name
node-version No 24 Node.js version
working-directory No . Frontend root directory
environment No production Build environment
package-scope No `` Package scope
upload-artifact No true Upload build artifact
artifact-retention-days No 7 Artifact retention days

Outputs: artifact-name, dist-path


Angular Lint

jobs:
  lint:
    uses: smartsolutionslab/orange-ci-templates/.github/workflows/angular-lint.yml@main
    with:
      app-name: public-portal
      working-directory: src/frontend
      package-scope: '@orange-car-rental'

Inputs:

Input Required Default Description
app-name Yes - Angular app name
node-version No 24 Node.js version
working-directory No . Frontend root directory
package-scope No `` Package scope
fail-on-error No true Fail on lint errors

Angular Test

jobs:
  test:
    uses: smartsolutionslab/orange-ci-templates/.github/workflows/angular-test.yml@main
    with:
      app-name: public-portal
      working-directory: src/frontend
      package-scope: '@orange-car-rental'
      coverage-enabled: true

Inputs:

Input Required Default Description
app-name Yes - Angular app name
node-version No 24 Node.js version
working-directory No . Frontend root directory
package-scope No `` Package scope
coverage-enabled No true Enable coverage
upload-coverage No true Upload coverage artifact

Outputs: coverage-path


.NET Build

jobs:
  build:
    uses: smartsolutionslab/orange-ci-templates/.github/workflows/dotnet-build.yml@main
    with:
      working-directory: src/backend
      solution-file: OrangeCarRental.sln
      configuration: Release
      publish: true
      publish-project: ApiGateway/OrangeCarRental.ApiGateway

Inputs:

Input Required Default Description
dotnet-version No 10.0.x .NET SDK version
working-directory No . Backend root directory
solution-file No *.sln Solution file
configuration No Release Build configuration
publish No false Publish application
publish-project No `` Project to publish
upload-artifact No true Upload artifact
artifact-retention-days No 7 Retention days

Outputs: artifact-name


.NET Lint

jobs:
  lint:
    uses: smartsolutionslab/orange-ci-templates/.github/workflows/dotnet-lint.yml@main
    with:
      working-directory: src/backend
      solution-file: OrangeCarRental.sln
      exclude-diagnostics: IDE1006

Inputs:

Input Required Default Description
dotnet-version No 10.0.x .NET SDK version
working-directory No . Backend root directory
solution-file No *.sln Solution file
exclude-diagnostics No IDE1006 Excluded diagnostics
fail-on-error No true Fail on errors
run-roslynator No true Run Roslynator

.NET Test

jobs:
  test:
    uses: smartsolutionslab/orange-ci-templates/.github/workflows/dotnet-test.yml@main
    with:
      working-directory: src/backend
      solution-file: OrangeCarRental.sln
      coverage-enabled: true

Inputs:

Input Required Default Description
dotnet-version No 10.0.x .NET SDK version
working-directory No . Backend root directory
solution-file No *.sln Solution file
test-filter No `` Test filter expression
coverage-enabled No true Enable coverage
coverage-threshold No 0 Min coverage %
upload-results No true Upload results

Outputs: coverage-path, results-path


Docker Build

jobs:
  docker:
    uses: smartsolutionslab/orange-ci-templates/.github/workflows/docker-build.yml@main
    with:
      context: src/frontend/apps/public-portal
      dockerfile: Dockerfile.runtime
      image-name: public-portal
      push: true
      registry: ghcr.io
    secrets:
      registry-username: ${{ github.actor }}
      registry-password: ${{ secrets.GITHUB_TOKEN }}

Inputs:

Input Required Default Description
context No . Build context
dockerfile No Dockerfile Dockerfile path
image-name Yes - Image name
push No false Push to registry
registry No ghcr.io Registry URL
tags No `` Additional tags
platforms No linux/amd64 Target platforms
build-args No `` Build arguments
cache-from No type=gha Cache source
cache-to No type=gha,mode=max Cache dest

Secrets: registry-username, registry-password

Outputs: image-uri, digest


E2E Playwright

jobs:
  e2e:
    uses: smartsolutionslab/orange-ci-templates/.github/workflows/e2e-playwright.yml@main
    with:
      working-directory: src/frontend
      browsers: chromium
      base-url: http://localhost:4200

Inputs:

Input Required Default Description
node-version No 24 Node.js version
working-directory No . Test directory
browsers No chromium Browsers to test
base-url No http://localhost:4200 Base URL
shard No `` Shard (e.g., 1/3)
timeout-minutes No 30 Job timeout
upload-report No true Upload report
upload-traces No true Upload traces

Outputs: report-path


Code Quality

jobs:
  quality:
    uses: smartsolutionslab/orange-ci-templates/.github/workflows/code-quality.yml@main
    with:
      languages: '"csharp","javascript"'
      backend-directory: src/backend
      frontend-directory: src/frontend

Inputs:

Input Required Default Description
languages No javascript Languages to analyze
dotnet-version No 10.0.x .NET version
node-version No 24 Node.js version
backend-directory No src/backend Backend directory
frontend-directory No src/frontend Frontend directory
solution-file No *.sln Solution file
fail-on-severity No moderate Fail severity

Complete Example

See examples/caller-workflow.yml for a complete example of using these workflows.

License

MIT

About

Reusable GitHub Actions workflows for Angular, .NET, and Docker projects

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •