Ontwerp een geavanceerde GitHub Actions workflow voor jouw project
description
Met deze prompt kan je een volledig op maat gemaakte GitHub Actions workflow creëren die precies aansluit bij jouw projectbehoeften. Het helpt complexe automatisering eenvoudiger te maken en zorgt dat je geen belangrijke stappen mist. Dit bespaart tijd, voorkomt fouten en optimaliseert je ontwikkelproces.
prompt
Help me een GitHub Actions workflow te ontwerpen die specifiek geschikt is voor mijn project. Projecttype: <voer het type project in, bijvoorbeeld Node.js, Python, Java>. Belangrijke stappen die ik wil ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een GitHub Actions workflow voor een Node.js-project met matrix builds voor Node.js versies 12 en 14, inclusief build-, test- en deploy-stappen:
```yaml
name: CI/CD Workflow
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12, 14]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
- name: Build project
run: npm run build
- name: Run tests
run: npm test
deploy:
needs: build
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Node.js 14
uses: actions/setup-node@v3
with:
node-version: 14
- name: Install dependencies
run: npm install
- name: Build project
run: npm run build
- name: Deploy to server
run: |
# Voeg hier je deploy commando's toe
echo "Deployen naar productie..."
env:
# Voeg eventueel secrets of environment variables toe
DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}
```
Deze workflow voert de volgende stappen uit:
- Trigger bij push naar de main-branch of bij pull requests.
- Voert matrix builds uit voor Node.js versies 12 en 14.
- Installeert dependencies, bouwt het project en test het.
- Na succesvolle builds wordt er automatisch gedeployed op de main-branch, met een aparte job.
Je kunt de deploy-stappen aanpassen naar jouw specifieke deploymentproces.
provider: deepseek
model: deepseek-chat
Hier is een GitHub Actions workflow voor je Node.js project met build, test, deploy en matrix builds voor Node.js versies 12 en 14:
```yaml
name: Node.js CI/CD
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build-and-test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x, 14.x]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build --if-present
- name: Run tests
run: npm test
- name: Upload test results
uses: actions/upload-artifact@v3
if: always()
with:
name: test-results-node-${{ matrix.node-version }}
path: |
test-results/
coverage/
retention-days: 5
deploy:
runs-on: ubuntu-latest
needs: build-and-test
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '14.x'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Deploy to production
run: echo "Implementeer hier je deploy commando"
# Voorbeeld: npm run deploy of je eigen deploy script
# env:
# DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}
```
**Belangrijke aanpassingen die je mogelijk moet doen:**
1. **Build commando**: Pas `npm run build` aan naar je daadwerkelijke build script
2. **Test commando**: Pas `npm test` aan naar je test script
3. **Deploy stap**: Vervang het echo commando door je eigen deploy logica
4. **Omgevingsvariabelen**: Voeg secrets toe in GitHub Repository Settings → Secrets
**Workflow kenmerken:**
- Matrix builds voor Node.js 12 en 14
- Automatische caching van npm dependencies
- Testresultaten worden opgeslagen als artifact
- Deploy alleen op de main branch
- Afhankelijkheid tussen jobs (deploy wacht op build-and-test)
Je kunt deze workflow plaatsen in `.github/workflows/nodejs-ci.yml` in je repository.