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