Help me met het opzetten van geautomatiseerde build- en deploypipelines voor mijn Svelte-project
description
Met deze prompt krijg je een duidelijk stappenplan om de kwaliteit en snelheid van je Svelte-ontwikkelproces te verbeteren door automatisering. Je voorkomt handmatige fouten en versnelt uitrol naar productie, wat efficiënter is dan handmatige deploys.
prompt
Help me bij het opzetten van een geautomatiseerde build- en deploymentpipeline voor mijn Svelte-project. Beschrijf hoe ik Continuous Integration (CI) en Continuous Deployment (CD) kan im ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een overzicht en een voorbeeld van hoe je een geautomatiseerde build- en deploymentpipeline voor je Svelte-project kunt opzetten met GitHub Actions, inclusief CI/CD en deployment naar Vercel met preview-omgevingen.
**Stap 1: Voorbereiding**
- Zorg dat je project in een GitHub-repository staat.
- Zorg dat je Vercel-account is gekoppeld aan je GitHub-repository.
- Installeer de Vercel CLI en authenticatie via een personal access token of via de GitHub-integratie.
---
**Stap 2: GitHub Actions Workflow opzetten**
Maak een workflowbestand in `.github/workflows/ci-cd.yml`. Hier is een voorbeeld:
```yaml
name: CI/CD voor Svelte met Vercel
on:
push:
branches:
- main
- 'feature/*' # Voor feature branches die previews willen maken
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18' # of andere gewenste versie
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
- name: Build project
run: npm run build
deploy:
needs: build
runs-on: ubuntu-latest
if: github.ref != 'refs/heads/main' && startsWith(github.ref, 'refs/heads/feature/')
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Build project
run: npm run build
- name: Deploy Preview naar Vercel
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
run: |
npm install -g vercel
vercel --prod --confirm --token $VERCEL_TOKEN --scope your-team-or-team-name
```
**Uitleg:**
- Bij elke push naar een feature branch of pull request wordt de build uitgevoerd.
- Voor feature branches worden automatisch previews gemaakt via Vercel.
- Voor de main branch kan je een aparte deployment workflow toevoegen die automatisch naar productie deployt.
---
**Stap 3: Vercel integratie en secrets**
- Voeg je Vercel token toe als secret in GitHub:
- Ga naar je GitHub repo > Settings > Secrets > New repository secret.
- Noem het bijvoorbeeld `VERCEL_TOKEN`.
- In Vercel:
- Maak een project aan.
- Verbind je GitHub repo.
- Configureer automatisch de deployment pipelines.
- Vercel creëert automatisch preview-omgevingen voor feature branches.
---
**Stap 4: Extra tips**
- Gebruik environment variables in Vercel voor API keys en configuratie.
- Voeg statuschecks toe in GitHub voor build en deployment success.
- Maak gebruik van branch-specific workflows voor meer controle.
---
**Kort samengevat:**
- CI: Gebouwd met `npm install`, testen en build in GitHub Actions.
- CD: Deployment naar Vercel via de CLI, automatisch voor feature branches en handmatig of automatisch voor main.
- Preview-omgevingen: Automatisch gegenereerd door Vercel voor elke feature branch.
Wil je een meer gedetailleerde configuratie of hulp bij specifieke stappen?
provider: deepseek
model: deepseek-chat
Zeker! Hier is een stapsgewijze handleiding voor het opzetten van een CI/CD-pipeline voor je Svelte-project met GitHub Actions en deployment naar Vercel.
### Stap 1: Voorbereiding
1. **Zorg dat je code op GitHub staat**
2. **Vercel account koppelen**
- Installeer de Vercel CLI: `npm i -g vercel`
- Login: `vercel login`
- Link project: `vercel link` (creëert `.vercel` map)
### Stap 2: GitHub Secrets configureren
Ga naar je GitHub repo → Settings → Secrets → New repository secret:
- `VERCEL_ORG_ID` (vind je in `.vercel/project.json`)
- `VERCEL_PROJECT_ID` (vind je in `.vercel/project.json`)
- `VERCEL_TOKEN` (aanmaken via vercel.com/account/tokens)
### Stap 3: GitHub Actions Workflow maken
Maak bestand: `.github/workflows/deploy.yml`
```yaml
name: Deploy to Vercel
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
- name: Build project
run: npm run build
deploy:
runs-on: ubuntu-latest
needs: build-and-test
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop')
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Deploy to Vercel
uses: amondnet/vercel-action@v20
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
vercel-args: '--prod' # Alleen voor main branch
```
### Stap 4: Preview Omgevingen voor Pull Requests
Voeg deze job toe aan je workflow:
```yaml
preview-deploy:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Deploy Preview
uses: amondnet/vercel-action@v20
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
vercel-args: '--meta githubCommitSha=${{ github.sha }}'
```
### Stap 5: Aanvullende configuraties
**package.json scripts (voorbeeld):**
```json
{
"scripts": {
"build": "vite build",
"test": "vitest run",
"lint": "eslint ."
}
}
```
**Vercel configuratie (vercel.json):**
```json
{
"version": 2,
"builds": [
{
"src": "package.json",
"use": "@vercel/static-build"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "/index.html"
}
]
}
```
### Stap 6: Branch Strategy
- `main` → productie deployment
- `develop` → staging deployment
- Pull requests → preview deployment
### Belangrijke punten:
1. **Tests worden altijd eerst uitgevoerd**
2. **Preview URLs verschijnen automatisch in pull requests**
3. **Cache optimalisatie voor snellere builds**
4. **Automatische rollback bij mislukte deployment**
Deze setup zorgt voor volledig geautomatiseerde testing, building en deployment met preview-omgevingen voor elke wijziging!