Skip to content

QA

QA #1954

Workflow file for this run

name: QA
on:
push:
branches:
- "*"
- "*/*"
pull_request:
branches:
- "*"
- "*/*"
schedule:
- cron: '0 0 * * *'
jobs:
crystal:
runs-on: ubuntu-latest
container:
image: crystallang/crystal:1.12.0
steps:
- uses: actions/checkout@v1
- name: Install shards
run: shards install --ignore-crystal-version
- name: QA checks
run: make qa
generated-app:
runs-on: ubuntu-latest
strategy:
fail-fast: false
container:
image: crystallang/crystal:1.12.0
steps:
- uses: actions/checkout@v2
- name: Install packages required for SQLite
run: |
apt-get update
apt-get -yqq install libsqlite3-dev
- name: Install shards
run: shards install --ignore-crystal-version --skip-postinstall --skip-executables
- name: Build the Marten CLI
run: |
mkdir bin
crystal build src/marten_cli.cr -o bin/marten
- name: Generate an app
run: |
mkdir tmp
bin/marten new app test --dir=./tmp/test-app
- name: Install generated app dependencies
run: |
cd tmp/test-app
echo "development_dependencies: { ameba: { github: crystal-ameba/ameba }}" >> shard.yml
shards install --ignore-crystal-version
cd lib && rm -rf marten && ln -s ../../.. marten
- name: Run ameba on the generated app
run: |
cd tmp/test-app
echo -e "Globs:\n - \"**/*.cr\"\n - \"!lib\"" >> .ameba.yml
bin/ameba
generated-project:
runs-on: ubuntu-latest
strategy:
fail-fast: false
container:
image: crystallang/crystal:1.12.0
steps:
- uses: actions/checkout@v2
- name: Install packages required for SQLite
run: |
apt-get update
apt-get -yqq install libsqlite3-dev
- name: Install shards
run: shards install --ignore-crystal-version --skip-postinstall --skip-executables
- name: Build the Marten CLI
run: |
mkdir bin
crystal build src/marten_cli.cr -o bin/marten
- name: Generate a project
run: |
mkdir tmp
bin/marten new project test --dir=./tmp/test-project
- name: Install generated project dependencies
run: |
cd tmp/test-project
echo "development_dependencies: { ameba: { github: crystal-ameba/ameba }}" >> shard.yml
shards install --ignore-crystal-version
cd lib && rm -rf marten && ln -s ../../.. marten
- name: Run ameba on the generated project
run: |
cd tmp/test-project
echo -e "Globs:\n - \"**/*.cr\"\n - \"!lib\"" >> .ameba.yml
bin/ameba
generated-auth-project:
runs-on: ubuntu-latest
strategy:
fail-fast: false
container:
image: crystallang/crystal:1.12.0
steps:
- uses: actions/checkout@v2
- name: Install packages required for SQLite
run: |
apt-get update
apt-get -yqq install libsqlite3-dev
- name: Install shards
run: shards install --ignore-crystal-version --skip-postinstall --skip-executables
- name: Build the Marten CLI
run: |
mkdir bin
crystal build src/marten_cli.cr -o bin/marten
- name: Generate a project with authentication
run: |
mkdir tmp
bin/marten new project test --with-auth --dir=./tmp/test-auth-project
- name: Install generated project dependencies
run: |
cd tmp/test-auth-project
echo "development_dependencies: { ameba: { github: crystal-ameba/ameba }}" >> shard.yml
shards install --ignore-crystal-version
cd lib && rm -rf marten && ln -s ../../.. marten
- name: Run ameba on the generated project
run: |
cd tmp/test-auth-project
echo -e "Globs:\n - \"**/*.cr\"\n - \"!lib\"" >> .ameba.yml
bin/ameba
docs:
runs-on: ubuntu-latest
container:
image: crystallang/crystal:1.12.0
steps:
- uses: actions/checkout@v1
- name: Use Node.js 18.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- name: Install shards
run: shards install --ignore-crystal-version
- name: Install doc dependencies
run: cd docs && npm install
- name: Build doc
run: |
crystal docs --output=docs/static/api
cd docs && npm run build