Add Drone CI pipeline configuration
Some checks failed
continuous-integration/drone/push Build encountered an error
Some checks failed
continuous-integration/drone/push Build encountered an error
This commit is contained in:
93
.drone.yml
Normal file
93
.drone.yml
Normal file
@@ -0,0 +1,93 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: default
|
||||
|
||||
steps:
|
||||
# Step 1: Install dependencies and run linting
|
||||
- name: test
|
||||
image: node:20-alpine
|
||||
commands:
|
||||
- npm ci
|
||||
- npm run lint || echo "⚠ Linting skipped (no lint script found)"
|
||||
- echo "✓ Dependency installation successful"
|
||||
# Uncomment when tests are ready:
|
||||
# - npm test
|
||||
|
||||
# Step 2: Build for production (to verify it compiles)
|
||||
- name: build
|
||||
image: node:20-alpine
|
||||
commands:
|
||||
- npm ci
|
||||
- npm run build
|
||||
- echo "✓ Build successful"
|
||||
|
||||
# Step 3: Deploy to staging
|
||||
- name: deploy-staging
|
||||
image: appleboy/drone-ssh
|
||||
when:
|
||||
branch:
|
||||
- develop
|
||||
- main
|
||||
event:
|
||||
- push
|
||||
settings:
|
||||
host:
|
||||
from_secret: staging_host
|
||||
user: root
|
||||
key:
|
||||
from_secret: ssh_private_key
|
||||
port: 22
|
||||
script:
|
||||
- /opt/deploy-scripts/deploy-nuxt.sh staging main
|
||||
|
||||
# Step 4: Deploy to production (manual trigger only)
|
||||
- name: deploy-production
|
||||
image: appleboy/drone-ssh
|
||||
when:
|
||||
branch:
|
||||
- main
|
||||
event:
|
||||
- promote
|
||||
target:
|
||||
- production
|
||||
settings:
|
||||
host:
|
||||
from_secret: production_host
|
||||
user: root
|
||||
key:
|
||||
from_secret: ssh_private_key
|
||||
port: 22
|
||||
script:
|
||||
- /opt/deploy-scripts/deploy-nuxt.sh production main
|
||||
|
||||
# Step 5: Notification
|
||||
- name: notify
|
||||
image: plugins/slack
|
||||
when:
|
||||
status:
|
||||
- success
|
||||
- failure
|
||||
settings:
|
||||
webhook:
|
||||
from_secret: slack_webhook
|
||||
channel: deployments
|
||||
username: Drone CI
|
||||
template: >
|
||||
{{#success build.status}}
|
||||
✓ Nuxt.js build {{build.number}} succeeded.
|
||||
Branch: {{build.branch}}
|
||||
Commit: {{build.commit}}
|
||||
{{else}}
|
||||
✗ Nuxt.js build {{build.number}} failed.
|
||||
Branch: {{build.branch}}
|
||||
Commit: {{build.commit}}
|
||||
{{/success}}
|
||||
failure: ignore
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- main
|
||||
- develop
|
||||
event:
|
||||
- push
|
||||
- promote
|
||||
Reference in New Issue
Block a user