Loading...
Loading...
This skill should be used when the user asks to "create a GitHub Actions workflow", "set up CI/CD", "configure GitHub Actions", "add automated testing", "deploy with GitHub Actions", or needs guidance on GitHub Actions workflows, syntax, or automation.
npx skill4agent add the-perfect-developer/the-perfect-opencode github-actions.github/workflows/name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run tests
run: npm test.github/workflows/workflow-name.ymlname: CI Pipelineon:
push:
branches: [ main, develop ]
pull_request:
workflow_dispatch: # Manual triggerjobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm teststeps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npm testname: Node.js CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 22]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm testname: Deploy
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: npm run build
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./distname: Build and Test
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm run build
- uses: actions/upload-artifact@v4
with:
name: build-output
path: dist/
test:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: build-output
path: dist/
- run: npm test| Event | Usage | Example |
|---|---|---|
| Code pushed to branches | |
| PR opened/updated | |
| Manual trigger | |
| Cron schedule | |
| Release created | |
| Issue activity | |
on:
push:
branches:
- main
- 'releases/**'on:
push:
paths:
- 'src/**'
- '**.js'on:
schedule:
- cron: '0 0 * * *' # Daily at midnighton:
push:
branches: [ main ]
pull_request:
workflow_dispatch:jobs:
job-name:
runs-on: ubuntu-latest
steps:
- run: echo "Hello"jobs:
build:
runs-on: ubuntu-latest
steps:
- run: npm run build
test:
needs: build
runs-on: ubuntu-latest
steps:
- run: npm testjobs:
deploy:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- run: ./deploy.shjobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node: [18, 20, 22]
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}steps:
- name: Deploy
env:
API_KEY: ${{ secrets.API_KEY }}
run: ./deploy.shenv:
NODE_ENV: production
jobs:
build:
env:
BUILD_VERSION: 1.0.0
steps:
- run: echo $BUILD_VERSIONactions/checkout@v4actions/setup-node@v4actions/setup-python@v5actions/cache@v4actions/upload-artifact@v4actions/download-artifact@v4- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'- id: build
run: echo "version=1.0.0" >> $GITHUB_OUTPUT
- run: echo "Built version ${{ steps.build.outputs.version }}"| Context | Description | Example |
|---|---|---|
| Workflow info | |
| Environment variables | |
| Repository secrets | |
| Matrix values | |
| Step outputs | |
| Runner environment | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main'if: contains(github.event.pull_request.labels.*.name, 'deploy')
if: startsWith(github.ref, 'refs/tags/')
if: success() || failure()steps:
- name: Deploy
env:
API_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
run: ./deploy.shon:
pull_request_target: # Use for fork PRs
types: [opened, synchronize]permissions:
contents: read
pull-requests: write
jobs:
comment:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({...})ACTIONS_STEP_DEBUG: trueACTIONS_RUNNER_DEBUG: true| Issue | Solution |
|---|---|
| Checkout fails | Use |
| Secrets not available | Check secret name and scope |
| Step skipped | Check |
| Action version error | Update to latest version tag |
| Permission denied | Check |
.github/workflows/.yml.yamlnameruns-onactions/checkout@v4needsGITHUB_TOKENreferences/workflow-syntax.mdreferences/common-patterns.mdreferences/security-guide.mdexamples/examples/ci-nodejs.ymlexamples/ci-python.ymlexamples/deploy-pages.ymlexamples/release.ymlexamples/docker-build.ymlname: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm testactions/checkout@v4actions/setup-node@v4actions/setup-python@v5actions/cache@v4actions/upload-artifact@v4${{ github.ref }}${{ github.sha }}${{ runner.os }}${{ secrets.SECRET_NAME }}${{ matrix.value }}