Deploy your application with zero configuration:
name: CNAP Build & Deploy
on: { push: { branches: [main] }, workflow_dispatch: }
jobs:
cnap:
uses: cnap-tech/actions/.github/workflows/cnap.yml@main
permissions: { contents: read, packages: write, id-token: write }
secrets: inherit- Zero Configuration - Automatic language detection and build setup
- Multi-Language Support - Node.js, Python, Go, Rust, and more
- Container Ready - Automatic Docker image creation and registry push
- Secure - Built-in OIDC authentication and secret management
| Parameter | Description | Required | Default |
|---|---|---|---|
build-context |
Directory containing your application code | No | ./ |
build-command |
Override the detected build command | No | Auto-detected |
start-command |
Override the detected start command | No | Auto-detected |
build-apt-packages |
Additional apt packages for build time | No | None |
runtime-apt-packages |
Additional apt packages for runtime | No | None |
name: CNAP Build & Deploy
on: { push: { branches: [main] }, workflow_dispatch: }
jobs:
cnap:
uses: cnap-tech/actions/.github/workflows/cnap.yml@main
permissions: { contents: read, packages: write, id-token: write }
secrets: inherit
with:
build-context: './apps/api'name: CNAP Build & Deploy
on: { push: { branches: [main] }, workflow_dispatch: }
jobs:
cnap:
uses: cnap-tech/actions/.github/workflows/cnap.yml@main
permissions: { contents: read, packages: write, id-token: write }
secrets: inherit
with:
build-apt-packages: 'python3-dev libpq-dev'
runtime-apt-packages: 'postgresql-client'name: CNAP Build & Deploy
on: { push: { branches: [main] }, workflow_dispatch: }
jobs:
deploy-api:
uses: cnap-tech/actions/.github/workflows/cnap.yml@main
permissions: { contents: read, packages: write, id-token: write }
secrets: inherit
with:
build-context: './apps/api'
deploy-web:
uses: cnap-tech/actions/.github/workflows/cnap.yml@main
permissions: { contents: read, packages: write, id-token: write }
secrets: inherit
with:
build-context: './apps/web'- Checkout - Code is checked out from repository
- Detection - Railpack analyzes project and detects language/framework
- Configuration - Build and runtime settings are automatically configured
- Build - Application is built using Railpack
- Package - Production-ready Docker image is created
- Push - Image is pushed to GitHub Container Registry
- Notify - CNAP is automatically notified of the new image
Contributions are welcome. Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
Made by the CNAP team
