mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-06 22:40:14 -05:00
736c96439b
- We'd randomly see SQLite take more than 10 seconds to set up the DB in CI so Ghost was getting killed prematurely, causing test failures
160 lines
4.8 KiB
YAML
160 lines
4.8 KiB
YAML
name: Test Suite
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
- 3.*
|
|
- 2.x
|
|
- 'renovate/*'
|
|
env:
|
|
FORCE_COLOR: 1
|
|
jobs:
|
|
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@v2
|
|
- uses: actions/setup-node@v1
|
|
with:
|
|
node-version: '12.10.0'
|
|
- run: yarn
|
|
- run: yarn lint
|
|
- uses: daniellockyer/action-slack-build@master
|
|
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/master'
|
|
with:
|
|
status: ${{ job.status }}
|
|
env:
|
|
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
|
|
migrations:
|
|
runs-on: ubuntu-18.04
|
|
if: github.event_name == 'push' || (github.event_name == 'pull_request' && !startsWith(github.head_ref, 'renovate/'))
|
|
strategy:
|
|
matrix:
|
|
DB: ['sqlite3', 'mysql']
|
|
env:
|
|
database__client: ${{ matrix.DB }}
|
|
database__connection__host: 127.0.0.1
|
|
database__connection__user: root
|
|
database__connection__password: root
|
|
database__connection__database: ghost_testing
|
|
name: Migrations - ${{ matrix.DB }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: true
|
|
- uses: actions/setup-node@v1
|
|
with:
|
|
node-version: '12.10.0'
|
|
|
|
- name: Shutdown MySQL
|
|
run: sudo service mysql stop
|
|
if: matrix.DB == 'mysql'
|
|
|
|
- uses: mirromutth/mysql-action@v1.1
|
|
if: matrix.DB == 'mysql'
|
|
with:
|
|
mysql version: '5.7'
|
|
mysql database: 'ghost_testing'
|
|
mysql root password: 'root'
|
|
|
|
- run: yarn
|
|
- run: |
|
|
node index.js &
|
|
sleep 20 && { kill $! && wait $!; } 2>/dev/null
|
|
- run: yarn knex-migrator rollback --v 3.0 --force
|
|
- run: yarn knex-migrator migrate --force
|
|
|
|
test:
|
|
runs-on: ubuntu-18.04
|
|
if: github.event_name == 'push' || (github.event_name == 'pull_request' && !startsWith(github.head_ref, 'renovate/'))
|
|
strategy:
|
|
matrix:
|
|
node: [ '10.13.0', '12.10.0', '14.15.0' ]
|
|
env:
|
|
- DB: sqlite3
|
|
NODE_ENV: testing
|
|
- DB: mysql
|
|
NODE_ENV: testing-mysql
|
|
env:
|
|
DB: ${{ matrix.env.DB }}
|
|
NODE_ENV: ${{ matrix.env.NODE_ENV }}
|
|
database__connection__password: root
|
|
name: Node ${{ matrix.node }} - ${{ matrix.env.DB }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-node@v1
|
|
with:
|
|
node-version: ${{ matrix.node }}
|
|
|
|
- name: Shutdown MySQL
|
|
run: sudo service mysql stop
|
|
if: matrix.env.DB == 'mysql'
|
|
|
|
- uses: mirromutth/mysql-action@v1.1
|
|
if: matrix.env.DB == 'mysql'
|
|
with:
|
|
mysql version: '5.7'
|
|
mysql database: 'ghost_testing'
|
|
mysql root password: 'root'
|
|
|
|
- run: yarn
|
|
- run: grunt test-acceptance --verbose
|
|
- run: grunt test-unit --verbose
|
|
- run: grunt test-regression --verbose
|
|
|
|
- uses: daniellockyer/action-slack-build@master
|
|
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/master'
|
|
with:
|
|
status: ${{ job.status }}
|
|
env:
|
|
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
|
|
ghost-cli:
|
|
name: Ghost-CLI
|
|
if: github.event_name == 'push' || (github.event_name == 'pull_request' && !startsWith(github.head_ref, 'renovate/'))
|
|
runs-on: ubuntu-18.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: true
|
|
- uses: actions/setup-node@v1
|
|
with:
|
|
node-version: '10.13.0'
|
|
- run: npm install -g ghost-cli@latest
|
|
- run: npm --no-git-tag-version version minor # We need to artificially bump the minor version to get migrations to run
|
|
- run: zip -r ghost.zip .
|
|
|
|
- name: Clean Install
|
|
run: |
|
|
DIR=$(mktemp -d)
|
|
ghost install local -d $DIR --zip $GITHUB_WORKSPACE/ghost.zip
|
|
|
|
- name: Latest Release
|
|
run: |
|
|
DIR=$(mktemp -d)
|
|
ghost install local -d $DIR
|
|
ghost update -d $DIR --zip $GITHUB_WORKSPACE/ghost.zip
|
|
|
|
- name: Upgrade from latest v1
|
|
run: |
|
|
DIR=$(mktemp -d)
|
|
ghost install v1 --local -d $DIR
|
|
ghost update -f -d $DIR --zip $GITHUB_WORKSPACE/ghost.zip
|
|
|
|
- name: Upgrade from latest v2
|
|
run: |
|
|
DIR=$(mktemp -d)
|
|
ghost install v2 --local -d $DIR
|
|
ghost update -f -d $DIR --zip $GITHUB_WORKSPACE/ghost.zip
|
|
|
|
- uses: daniellockyer/action-slack-build@master
|
|
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/master'
|
|
with:
|
|
status: ${{ job.status }}
|
|
env:
|
|
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|