Merge pull request #5 from snacks02/ameba #93
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: Crystal CI | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
permissions: | |
contents: write | |
pages: write | |
id-token: write | |
concurrency: | |
group: "pages" | |
cancel-in-progress: false | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
container: | |
image: crystallang/crystal | |
services: | |
postgres: | |
image: postgres | |
ports: | |
- 5432:5432 | |
env: | |
POSTGRES_USER: example | |
POSTGRES_PASSWORD: example | |
POSTGRES_DB: example | |
options: >- | |
--health-cmd="pg_isready -U postgres" | |
--health-interval=10s | |
--health-timeout=5s | |
--health-retries=5 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update package list and install SQLite and development files | |
run: | | |
apt-get update | |
apt-get install -y sqlite3 libsqlite3-dev | |
- name: Verify SQLite installation | |
run: sqlite3 --version | |
- name: Create Sqlite databases | |
run: | | |
touch ./spec/db/northwind.db | |
touch ./spec/db/data.db | |
touch ./spec/db/billing.db | |
touch ./spec/db/tabledb.db | |
chmod 664 ./spec/db/northwind.db | |
chmod 664 ./spec/db/data.db | |
chmod 664 ./spec/db/billing.db | |
chmod 664 ./spec/db/tabledb.db | |
- name: Install dependencies | |
run: shards install | |
- name: Check code style | |
run: crystal tool format --check | |
- name: Check code linting with Ameba | |
run: bin/ameba | |
- name: Run tests | |
env: | |
DATABASE_URL: postgres://example:example@postgres:5432/example | |
run: crystal spec | |
release: | |
runs-on: ubuntu-latest | |
needs: | |
- build | |
if: ${{ success() }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Compute Release Version | |
id: semver | |
uses: paulhatch/[email protected] | |
with: | |
tag_prefix: "v" | |
major_pattern: "(MAJOR)" | |
minor_pattern: "(MINOR)" | |
# A string to determine the format of the version output | |
format: "${major}.${minor}.${patch}" | |
# If this is set to true, *every* commit will be treated as a new version. | |
bump_each_commit: true | |
- name: Bump Shard Version | |
id: bump-shard | |
uses: fjogeleit/yaml-update-action@master | |
with: | |
valueFile: shard.yml | |
propertyPath: version | |
value: ${{steps.semver.outputs.version}} | |
branch: master | |
updateFile: true | |
message: Set shard version ${{ steps.semver.outputs.version }} | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@latest | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{steps.semver.outputs.version_tag}} | |
release_name: Release v${{steps.semver.outputs.version}} | |
draft: false | |
prerelease: false |