diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..544e4f20 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,42 @@ +name: CI + +on: + push: + pull_request: + branches: + # Branches from forks have the form 'user:branch-name' so we only run + # this job on pull_request events for branches that look like fork + # branches. Without this we would end up running this job twice for non + # forked PRs, once for the push and then once for opening the PR. + - "**:**" + schedule: + - cron: "0 3 * * 1" # Every monday at 3 AM + +jobs: + test: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest] + crystal: [latest, nightly] + runs-on: ${{ matrix.os }} + + steps: + - name: Install Crystal + uses: oprypin/install-crystal@v1 + with: + crystal: ${{ matrix.crystal }} + + - name: Download source + uses: actions/checkout@v2 + + - name: Install dependencies + run: shards install + env: + SHARDS_OPTS: --ignore-crystal-version + + - name: Run specs + run: make test + + - name: Check formatting + run: crystal tool format --check diff --git a/.gitignore b/.gitignore index dddc937e..2e28b915 100644 --- a/.gitignore +++ b/.gitignore @@ -7,5 +7,3 @@ # Libraries don't need dependency lock # Dependencies will be locked in application that uses them /shard.lock - -*.html \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5de00985..00000000 --- a/.travis.yml +++ /dev/null @@ -1,28 +0,0 @@ -language: crystal - -crystal: - - latest - - nightly - -jobs: - allow_failures: - - crystal: nightly - -install: - - shards install - -script: - - make test - - crystal tool format --check - - sed -i -e 's:<.*>::g' README.md - - crystal docs - -deploy: - provider: pages - github_token: $GITHUB_TOKEN - project_name: ameba - skip_cleanup: true - on: - branch: master - local_dir: docs - verbose: true diff --git a/README.md b/README.md index 422776df..b901259a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@
- + @@ -169,7 +169,7 @@ In this example we define default globs and exclude `src/compiler` folder: Globs: - **/*.cr - !lib - + Excluded: - src/compiler ```