How to integrate the Cameyo SDK into your CI/CD pipeline
Overview
Automate building, packaging, testing, and deploying virtualized apps using the Cameyo SDK by adding SDK steps to your existing CI/CD workflow (example below uses GitHub Actions; adapt to GitLab CI, Jenkins, Azure DevOps, etc.).
Prerequisites
- Repository containing your app and build scripts.
- Cameyo SDK access (API key/credentials) stored securely in CI secrets.
- Build artifacts produced by your pipeline (e.g., installer, binaries).
- A runner/agent with required OS and dependencies to run the SDK (Windows runner for Windows-only packaging).
Example flow (recommended stages)
- Build — compile app, produce installer/artifacts.
- Package — invoke Cameyo SDK to create a virtualized package from artifacts.
- Test — run automated smoke tests against the packaged app (headless/GUI tests).
- Publish — upload the packaged app to your registry/artifact storage or deploy to Cameyo service.
- Notify — report results and artifacts location.
GitHub Actions example
Replace placeholders with your repo-specific values and store secrets (e.g., CAMEYO_APIKEY) in GitHub Secrets.
yaml
name: CI-CD Cameyo Package on: push: branches: [ main ] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v4 - name: Set up .NET uses: actions/setup-dotnet@v4 with: dotnet-version: ‘7.x’ - name: Build run: dotnet publish -c Release -o output - name: Upload build artifact uses: actions/upload-artifact@v4 with: name: app-build path: output package: needs: build runs-on: windows-latest steps: - uses: actions/checkout@v4 - name: Download build artifact uses: actions/download-artifact@v4 with: name: app-build - name: Install Cameyo SDK run: | choco install cameyo-sdk -y || echo “install step — replace with SDK install commands” - name: Run Cameyo SDK packaging env: CAMEYO_API_KEY: \(</span><span class="token" style="color: rgb(57, 58, 52);">{</span><span class="token" style="color: rgb(57, 58, 52);">{</span><span> secrets.CAMEYO_API_KEY </span><span class="token" style="color: rgb(57, 58, 52);">}</span><span class="token" style="color: rgb(57, 58, 52);">}</span><span> </span><span> </span><span class="token key" style="color: rgb(0, 0, 255);">run</span><span class="token" style="color: rgb(57, 58, 52);">:</span><span> </span><span class="token" style="color: rgb(57, 58, 52);">|</span><span class="token scalar" style="color: rgb(163, 21, 21);"> </span><span class="token scalar" style="color: rgb(163, 21, 21);"> # example CLI command — replace with actual Cameyo SDK CLI usage </span><span class="token scalar" style="color: rgb(163, 21, 21);"> cameyo-cli package --source ./output --name "MyApp" --api-key "\)CAMEYO_API_KEY” –output ./dist - name: Upload packaged artifact uses: actions/upload-artifact@v4 with: name: cameyo-package path: ./dist test: needs: package runs-on: windows-latest steps: - uses: actions/checkout@v4 - name: Download package uses: actions/download-artifact@v4 with: name: cameyo-package - name: Run automated smoke tests run: | # run tests against the virtualized package ./tests/run-smoke-tests.ps1 ./dist/MyApp.cameyo publish: needs: test runs-on: windows-latest steps: - uses: actions/checkout@v4 - name: Download package uses: actions/download-artifact@v4 with: name: cameyo-package - name: Publish package env: CAMEYO_API_KEY: \(</span><span class="token" style="color: rgb(57, 58, 52);">{</span><span class="token" style="color: rgb(57, 58, 52);">{</span><span> secrets.CAMEYO_API_KEY </span><span class="token" style="color: rgb(57, 58, 52);">}</span><span class="token" style="color: rgb(57, 58, 52);">}</span><span> </span><span> </span><span class="token key" style="color: rgb(0, 0, 255);">run</span><span class="token" style="color: rgb(57, 58, 52);">:</span><span> </span><span class="token" style="color: rgb(57, 58, 52);">|</span><span class="token scalar" style="color: rgb(163, 21, 21);"> </span><span class="token scalar" style="color: rgb(163, 21, 21);"> # replace with actual publish/upload command </span><span class="token scalar" style="color: rgb(163, 21, 21);"> cameyo-cli publish --file ./dist/MyApp.cameyo --api-key "\)CAMEYO_API_KEY”
Testing strategies
- Automated GUI tests with tools like Playwright (Electron), WinAppDriver, or AutoIt.
- Smoke tests: launch app, verify main window, perform key flows.
- Canary deployments: deploy package to a staging tenant before production.
Security & secrets
- Store API keys and credentials in CI secret stores.
- Limit credential scope and rotate keys regularly.
- Run packaging on ephemeral runners when possible.
Tips
- Use a dedicated packaging branch or tag to trigger packaging only for release builds.
- Cache SDK dependencies to speed up pipeline runs.
- Fail fast on packaging errors and surface logs as artifacts for debugging.
- Automate
Leave a Reply
You must be logged in to post a comment.