QA #2387
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: QA | |
on: | |
push: | |
branches: | |
- "*" | |
- "*/*" | |
pull_request: | |
branches: | |
- "*" | |
- "*/*" | |
schedule: | |
- cron: '0 0 * * *' | |
jobs: | |
crystal: | |
runs-on: ubuntu-latest | |
container: | |
image: crystallang/crystal:1.14.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.14.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.14.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.14.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.14.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 |