Skip to content

Migrate to LuckyTemplate - Part 2 of ... #519

Migrate to LuckyTemplate - Part 2 of ...

Migrate to LuckyTemplate - Part 2 of ... #519

Workflow file for this run

name: Lucky CLI Main CI
on:
push:
branches: [main]
pull_request:
branches: "*"
jobs:
check_format:
strategy:
fail-fast: false
runs-on: ubuntu-latest
continue-on-error: false
steps:
- uses: actions/checkout@v3
- name: Install Crystal
uses: crystal-lang/install-crystal@v1
with:
crystal: 1.6.2
- name: Install shards
run: shards install
- name: Format
run: crystal tool format --check
- name: Lint
run: ./bin/ameba
specs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
crystal_version: [latest, 1.6.2]
experimental: [false]
shard_override_file: [shard.override.yml]
exclude:
# TODO: Add Windows
# NOTE: caching node-modules & running setup script need to be changed for Windows
- os: windows-latest
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
services:
postgres:
image: postgres:13
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
# needed because the postgres container does not provide a healthcheck
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Checkout source
uses: actions/checkout@v3
- name: Install Crystal
uses: crystal-lang/install-crystal@v1
with:
crystal: ${{ matrix.crystal_version }}
- name: Cache node modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Run setup script
run: ./script/setup
- name: Install Lucky CLI
run: |
crystal build src/lucky.cr
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path
# TL;DR => $GITHUB_PATH == PATH
pwd >> $GITHUB_PATH
- name: Run tests
run: |
export SHARDS_OVERRIDE="$(pwd)/${{ matrix.shard_override_file }}"
crystal spec
env:
LUCKY_ENV: test
RUN_SEC_TESTER_SPECS: 0