Ghost/ghost/admin/.github/workflows/test.yml
2022-04-25 21:19:01 +01:00

97 lines
2.7 KiB
YAML

name: Test Suite
on:
pull_request:
push:
branches:
- "v4.*"
- "5.0"
- "multiple-newsletters"
- main
- "renovate/*"
jobs:
prod-build:
runs-on: ubuntu-18.04
if: github.event_name == 'push' || (github.event_name == 'pull_request' && !startsWith(github.head_ref, 'renovate/'))
name: Production Build
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "14.17.0"
- run: yarn
- run: grunt shell:ember:prod
- uses: daniellockyer/action-slack-build@master
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main'
with:
status: ${{ job.status }}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
lint:
runs-on: ubuntu-18.04
if: github.event_name == 'push' || (github.event_name == 'pull_request' && !startsWith(github.head_ref, 'renovate/'))
name: Lint
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "14.17.0"
- run: yarn
- run: yarn lint:js
- run: yarn lint:hbs
- uses: daniellockyer/action-slack-build@master
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main'
with:
status: ${{ job.status }}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
test:
runs-on: ubuntu-18.04
if: github.event_name == 'push' || (github.event_name == 'pull_request' && !startsWith(github.head_ref, 'renovate/'))
strategy:
matrix:
browser: ["Firefox", "Chrome"]
name: ${{ matrix.browser }}
env:
MOZ_HEADLESS: 1
JOBS: 1
CI: true
COVERAGE: true
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "14.17.0"
- run: yarn
- run: yarn test
env:
BROWSER: ${{ matrix.browser }}
# Merge coverage reports and upload
- run: yarn ember coverage-merge
- uses: codecov/codecov-action@v3
- uses: daniellockyer/action-slack-build@master
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main'
with:
status: ${{ job.status }}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
canary:
runs-on: ubuntu-18.04
needs: [lint, test, prod-build]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Canary
steps:
- name: Invoke Canary Build
uses: benc-uk/workflow-dispatch@v1
with:
workflow: Canary Build
repo: TryGhost/Ghost
token: ${{ secrets.WORKFLOW_TOKEN }}