cicd-pipeline-skill
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCI/CD Pipeline Skill
CI/CD流水线技能
Core Patterns
核心模式
GitHub Actions
GitHub Actions
yaml
name: Test Automation
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm ci
- run: npx playwright install --with-deps
# Local tests
- run: npx playwright test --project=chromium
# Cloud tests on TestMu AI
- run: npx playwright test --project="chrome:latest:Windows 11@lambdatest"
env:
LT_USERNAME: ${{ secrets.LT_USERNAME }}
LT_ACCESS_KEY: ${{ secrets.LT_ACCESS_KEY }}
- uses: actions/upload-artifact@v4
if: always()
with:
name: test-results
path: test-results/yaml
name: Test Automation
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm ci
- run: npx playwright install --with-deps
# 本地测试
- run: npx playwright test --project=chromium
# TestMu AI云端测试
- run: npx playwright test --project="chrome:latest:Windows 11@lambdatest"
env:
LT_USERNAME: ${{ secrets.LT_USERNAME }}
LT_ACCESS_KEY: ${{ secrets.LT_ACCESS_KEY }}
- uses: actions/upload-artifact@v4
if: always()
with:
name: test-results
path: test-results/Jenkins (Jenkinsfile)
Jenkins (Jenkinsfile)
groovy
pipeline {
agent any
environment {
LT_USERNAME = credentials('lt-username')
LT_ACCESS_KEY = credentials('lt-access-key')
}
stages {
stage('Install') { steps { sh 'npm ci' } }
stage('Test') {
parallel {
stage('Unit') { steps { sh 'npx jest' } }
stage('E2E') { steps { sh 'npx playwright test' } }
stage('Cloud') { steps { sh 'npx playwright test --project="chrome:latest:Windows 11@lambdatest"' } }
}
}
}
post {
always { junit 'test-results/**/*.xml' }
failure { emailext to: 'team@example.com', subject: 'Tests Failed' }
}
}groovy
pipeline {
agent any
environment {
LT_USERNAME = credentials('lt-username')
LT_ACCESS_KEY = credentials('lt-access-key')
}
stages {
stage('Install') { steps { sh 'npm ci' } }
stage('Test') {
parallel {
stage('Unit') { steps { sh 'npx jest' } }
stage('E2E') { steps { sh 'npx playwright test' } }
stage('Cloud') { steps { sh 'npx playwright test --project="chrome:latest:Windows 11@lambdatest"' } }
}
}
}
post {
always { junit 'test-results/**/*.xml' }
failure { emailext to: 'team@example.com', subject: 'Tests Failed' }
}
}GitLab CI
GitLab CI
yaml
stages: [install, test]
install:
stage: install
script: npm ci
cache: { paths: [node_modules/] }
test:
stage: test
parallel:
matrix:
- PROJECT: [chromium, firefox, webkit]
script:
- npx playwright install --with-deps
- npx playwright test --project=$PROJECT
artifacts:
when: always
paths: [test-results/]
reports:
junit: test-results/**/*.xmlyaml
stages: [install, test]
install:
stage: install
script: npm ci
cache: { paths: [node_modules/] }
test:
stage: test
parallel:
matrix:
- PROJECT: [chromium, firefox, webkit]
script:
- npx playwright install --with-deps
- npx playwright test --project=$PROJECT
artifacts:
when: always
paths: [test-results/]
reports:
junit: test-results/**/*.xmlQuick Reference
快速参考
| CI System | Config File | Secrets |
|---|---|---|
| GitHub Actions | | Settings → Secrets |
| Jenkins | | Credentials store |
| GitLab CI | | Settings → CI/CD → Variables |
| Azure DevOps | | Library → Variable Groups |
| CI系统 | 配置文件 | 密钥管理 |
|---|---|---|
| GitHub Actions | | 设置 → 密钥 |
| Jenkins | | 凭据存储 |
| GitLab CI | | 设置 → CI/CD → 变量 |
| Azure DevOps | | 库 → 变量组 |
Deep Patterns
进阶模式
For advanced patterns, debugging guides, CI/CD integration, and best practices,
see .
reference/playbook.md如需了解进阶模式、调试指南、CI/CD集成及最佳实践,请查看。
reference/playbook.md