CLI in CI/CD
Using QNSP CLI in CI/CD pipelines.
CLI in CI/CD
Using QNSP CLI in CI/CD pipelines.
GitHub Actions
name: Deploy with QNSP
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install QNSP CLI
run: pnpm add -g @qnsp/cli
- name: Configure QNSP
env:
QNSP_TENANT_ID: ${{ secrets.QNSP_TENANT_ID }}
QNSP_SERVICE_ID: ${{ secrets.QNSP_SERVICE_ID }}
QNSP_SERVICE_SECRET: ${{ secrets.QNSP_SERVICE_SECRET }}
run: |
# Optional: explicitly request a token (most commands will do this automatically)
qnsp auth token --service-id $QNSP_SERVICE_ID --service-secret $QNSP_SERVICE_SECRET --output json
- name: Fetch secrets
run: |
qnsp vault secrets get $QNSP_SECRET_ID --output json > db-password.json
GitLab CI
deploy:
image: node:20
before_script:
- corepack enable && corepack prepare pnpm@10.25.0 --activate && pnpm add -g @qnsp/cli
script:
- qnsp vault secrets get $QNSP_SECRET_ID --output json > api-key.json
variables:
QNSP_TENANT_ID: $QNSP_TENANT_ID
Jenkins
pipeline {
agent any
environment {
QNSP_TENANT_ID = credentials('qnsp-tenant-id')
QNSP_SERVICE_ID = credentials('qnsp-service-id')
QNSP_SERVICE_SECRET = credentials('qnsp-service-secret')
}
stages {
stage('Setup') {
steps {
sh 'corepack enable && corepack prepare pnpm@10.25.0 --activate'
sh 'pnpm add -g @qnsp/cli'
sh 'qnsp auth token --service-id $QNSP_SERVICE_ID --service-secret $QNSP_SERVICE_SECRET --output json'
}
}
stage('Deploy') {
steps {
sh 'qnsp vault secrets get $QNSP_SECRET_ID --output json > deploy-key.json'
}
}
}
}
CircleCI
version: 2.1
jobs:
deploy:
docker:
- image: cimg/node:20.0
steps:
- checkout
- run:
name: Install QNSP CLI
command: |
corepack enable
corepack prepare pnpm@10.25.0 --activate
pnpm add -g @qnsp/cli
- run:
name: Fetch secrets
command: |
qnsp auth token --service-id $QNSP_SERVICE_ID --service-secret $QNSP_SERVICE_SECRET --output json
qnsp vault secrets get $QNSP_SECRET_ID --output json