Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
cac863f
Making a mess with Docker
jwoertink Nov 25, 2025
402eea6
Starting move back to running e2e specs right in Crystal
jwoertink Jan 10, 2026
1a4507f
Merge branch 'main' into issues/894
jwoertink Jan 11, 2026
291cf3f
Removing the Earthfile and anything related to fixtures
jwoertink Jan 11, 2026
e9a29c7
Working new CI flow with some updates. Testing if this will actually …
jwoertink Jan 11, 2026
effc0f4
Fixing CI yaml
jwoertink Jan 11, 2026
d3b3872
moving shards override ENV var to needed specs. Not sure if this fixe…
jwoertink Jan 11, 2026
1571765
Don't use services because that only works on linux. Also need the lu…
jwoertink Jan 11, 2026
fc649f2
fixing syntax error in CI
jwoertink Jan 11, 2026
1ab47bb
Adding this file to tell Windows to ignore the formatting
jwoertink Jan 12, 2026
8150eb1
Debugging where the shards override file is located
jwoertink Jan 12, 2026
7534fd0
Hopefully fixing the shard overriding missing issue
jwoertink Jan 12, 2026
087e568
fixing deprecation warning
jwoertink Jan 12, 2026
8f19965
Working through each spec iteration
jwoertink Jan 12, 2026
220d3f4
Update main CI with all specs ready to go. Comment out release and we…
jwoertink Jan 12, 2026
40593d8
For windows compatibility
jwoertink Jan 12, 2026
3234d43
Don't run the crystal formatter tests on Windows due to line ending i…
jwoertink Jan 12, 2026
9b1f51c
Fill in this spec with a bit more testing
jwoertink Jan 12, 2026
8fb80de
Windows CI doesn't install yarn by default like mac and linux
jwoertink Jan 12, 2026
5234574
Getting an error about yarn.lock not found. Assuming it's because I'm…
jwoertink Jan 12, 2026
dedaae3
Attempting to clean up the CI a little with better cross-platform com…
jwoertink Jan 12, 2026
345c6e7
Apparently Windows needs corepack installed to make yarn available ev…
jwoertink Jan 12, 2026
22ba58e
Apparently starting with Node 24, it's not enough to just enable core…
jwoertink Jan 12, 2026
95140df
Another very annoying attempt at getting Windows to work
jwoertink Jan 12, 2026
66c9769
debugging only windows... no clue how to get yarn to show up
jwoertink Jan 12, 2026
bafb153
We can't run this for yarn on Windows because Crystal appends .exe to…
jwoertink Jan 13, 2026
6042fe7
fix typo and I forgot to remove the CI debugging
jwoertink Jan 13, 2026
2d9365c
revert that test and opened up a separate issue to deal with Windows …
jwoertink Jan 13, 2026
d2a98a3
reenable all specs but keep the browser and windows specs out for now…
jwoertink Jan 13, 2026
cd3279a
Remove the weekly for now and update release so it stops trying to ru…
jwoertink Jan 13, 2026
018f919
more debugging to figure out how to get Windows to work
jwoertink Jan 13, 2026
77f2ba8
trying a different version of upterm for debugging
jwoertink Jan 13, 2026
2409eb8
Trying different shells for windows
jwoertink Jan 13, 2026
ca7de11
giving up and foregoing windows CI testing. There's far too many issu…
jwoertink Jan 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.cr text eol=lf
198 changes: 166 additions & 32 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,60 +8,194 @@ on:

env:
FORCE_COLOR: 1
EARTHLY_CI: 'true'
EARTHLY_ALLOW_PRIVILEGED: 'true'
LUCKY_ENV: test

jobs:
specs:
check_format:
strategy:
fail-fast: false
runs-on: ubuntu-latest
continue-on-error: false
steps:
- uses: earthly/actions-setup@v1
- uses: actions/checkout@v6
- uses: crystal-lang/install-crystal@v1
with:
version: v0.8.0
- uses: actions/checkout@v5
- name: Run build
run: |
earthly +gh-action-essential
crystal: latest
- name: Install shards
run: shards install
- name: Format
run: crystal tool format --check

platform-specs:
needs: specs
platform_specs:
needs: check_format
strategy:
fail-fast: false
matrix:
include:
- {os: macos-latest}
- {os: windows-latest}
- { os: ubuntu-latest }
- { os: macos-latest }
- { os: windows-latest }
runs-on: ${{matrix.os}}
continue-on-error: false
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: crystal-lang/install-crystal@v1
with:
crystal: latest
- name: Install shards
run: shards install
- name: Run specs
run: crystal spec --tag "~integration"
- name: Run unit and integration specs
run: crystal spec spec/integration/ spec/unit/

integration-specs:
needs: specs
runs-on: ubuntu-latest
# NOTE: These e2e specs will take a while to run
browser_with_auth:
needs: [check_format, platform_specs]
strategy:
fail-fast: false
matrix:
include:
- { os: ubuntu-latest }
- { os: macos-latest }
# - { os: windows-latest }
runs-on: ${{matrix.os}}
continue-on-error: false
steps:
- uses: earthly/actions-setup@v1
- uses: actions/checkout@v6
- name: Setup PostgreSQL
uses: ikalnytskyi/action-setup-postgres@v8
with:
username: postgres
password: postgres
port: 5432
postgres-version: 18
- uses: actions/setup-node@v6
with:
version: v0.8.0
- uses: actions/checkout@v5
- name: Run build
node-version: 24
- name: Enable Corepack (for yarn)
run: |
earthly +gh-action-integration
corepack enable
corepack prepare yarn@1.22.22 --activate
yarn --version
- uses: crystal-lang/install-crystal@v1
with:
crystal: latest
- name: Install shards
run: shards install --skip-postinstall --skip-executables
- name: Install LuckyCLI
run: crystal build src/lucky.cr
- name: Add current directory to PATH
run: echo "$PWD" >> "$GITHUB_PATH"
- name: Set SHARDS_OVERRIDE
run: echo "SHARDS_OVERRIDE=${GITHUB_WORKSPACE}/shard.override.yml" >> "$GITHUB_ENV"
- name: Run e2e Browser app with authentication flow
run: crystal spec spec/end_to_end/browser_with_auth_spec.cr

e2e-specs:
needs: integration-specs
runs-on: ubuntu-latest
browser_without_auth:
needs: [check_format, platform_specs]
strategy:
fail-fast: false
matrix:
include:
- { os: ubuntu-latest }
- { os: macos-latest }
# - { os: windows-latest }
runs-on: ${{matrix.os}}
continue-on-error: false
steps:
- uses: earthly/actions-setup@v1
- uses: actions/checkout@v6
- name: Setup PostgreSQL
uses: ikalnytskyi/action-setup-postgres@v8
with:
version: v0.8.0
- uses: actions/checkout@v5
- name: Run build
username: postgres
password: postgres
port: 5432
postgres-version: 18
- uses: actions/setup-node@v6
with:
node-version: 24
- name: Enable Corepack (for yarn)
run: |
earthly +gh-action-e2e
corepack enable
corepack prepare yarn@1.22.22 --activate
yarn --version
- uses: crystal-lang/install-crystal@v1
with:
crystal: latest
- name: Install shards
run: shards install --skip-postinstall --skip-executables
- name: Install LuckyCLI
run: crystal build src/lucky.cr
- name: Add current directory to PATH
run: echo "$PWD" >> "$GITHUB_PATH"
- name: Set SHARDS_OVERRIDE
run: echo "SHARDS_OVERRIDE=${GITHUB_WORKSPACE}/shard.override.yml" >> "$GITHUB_ENV"
- name: Run e2e Browser app without authentication flow
run: crystal spec spec/end_to_end/browser_no_auth_spec.cr

api_with_auth:
needs: [check_format, platform_specs]
strategy:
fail-fast: false
matrix:
include:
- { os: ubuntu-latest }
- { os: macos-latest }
# - { os: windows-latest }
runs-on: ${{matrix.os}}
continue-on-error: false
steps:
- uses: actions/checkout@v6
- name: Setup PostgreSQL
uses: ikalnytskyi/action-setup-postgres@v8
with:
username: postgres
password: postgres
port: 5432
postgres-version: 18
- uses: crystal-lang/install-crystal@v1
with:
crystal: latest
- name: Install shards
run: shards install --skip-postinstall --skip-executables
- name: Install LuckyCLI
run: crystal build src/lucky.cr
- name: Add current directory to PATH
run: echo "$PWD" >> "$GITHUB_PATH"
- name: Set SHARDS_OVERRIDE
run: echo "SHARDS_OVERRIDE=${GITHUB_WORKSPACE}/shard.override.yml" >> "$GITHUB_ENV"
- name: Run e2e API app with authentication flow
run: crystal spec spec/end_to_end/api_with_auth_spec.cr

api_without_auth:
needs: [check_format, platform_specs]
strategy:
fail-fast: false
matrix:
include:
- { os: ubuntu-latest }
- { os: macos-latest }
# - { os: windows-latest }
runs-on: ${{matrix.os}}
continue-on-error: false
steps:
- uses: actions/checkout@v6
- name: Setup PostgreSQL
uses: ikalnytskyi/action-setup-postgres@v8
with:
username: postgres
password: postgres
port: 5432
postgres-version: 18
- uses: crystal-lang/install-crystal@v1
with:
crystal: latest
- name: Install shards
run: shards install --skip-postinstall --skip-executables
- name: Install LuckyCLI
run: crystal build src/lucky.cr -o lucky
- name: Add current directory to PATH
run: echo "$PWD" >> "$GITHUB_PATH"
- name: Set SHARDS_OVERRIDE
run: echo "SHARDS_OVERRIDE=${GITHUB_WORKSPACE}/shard.override.yml" >> "$GITHUB_ENV"
- name: Run e2e API app without authentication flow
run: crystal spec spec/end_to_end/api_no_auth_spec.cr
16 changes: 6 additions & 10 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,12 @@ jobs:
runs-on: ubuntu-latest
env:
FORCE_COLOR: 1
EARTHLY_CI: 'true'
steps:
- uses: earthly/actions-setup@v1
with:
version: v0.8.0
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Build and package
run: |
mkdir -p bin
earthly --artifact +release-static/lucky ./bin/lucky
# TODO: needs build step
sha256sum bin/lucky | awk '{print $1}' > ./bin/checksums.txt
tar -czvf lucky-$GITHUB_REF_NAME-linux-amd64.tar.gz -C ./bin .
- uses: actions/upload-artifact@v4
Expand All @@ -38,7 +34,7 @@ jobs:
build-windows-amd64:
runs-on: windows-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: crystal-lang/install-crystal@v1
- uses: ilammy/msvc-dev-cmd@v1
- name: Build and package
Expand All @@ -58,7 +54,7 @@ jobs:
- build-windows-amd64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/download-artifact@v4
with:
path: artifacts
Expand All @@ -82,7 +78,7 @@ jobs:
needs: release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Generate app token
id: generate-token
uses: actions/create-github-app-token@v2
Expand All @@ -108,7 +104,7 @@ jobs:
needs: release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Generate app token
id: generate-token
uses: actions/create-github-app-token@v2
Expand Down
37 changes: 0 additions & 37 deletions .github/workflows/weekly.yml

This file was deleted.

Loading