-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
GitHub Actions #9514
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GitHub Actions #9514
Changes from all commits
72bead3
fc9745c
7b84b25
15e2e4d
9183425
78d9c5a
062d81d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,101 @@ | ||
| name: Linux CI | ||
|
|
||
| on: [push, pull_request] | ||
|
|
||
| env: | ||
| TRAVIS_OS_NAME: linux | ||
| SPEC_SPLIT_DOTS: 160 | ||
|
|
||
| jobs: | ||
| test_linux: | ||
| env: | ||
| ARCH: x86_64 | ||
| ARCH_CMD: linux64 | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Download Crystal source | ||
| uses: actions/checkout@v2 | ||
|
|
||
| - name: Prepare System | ||
| run: bin/ci prepare_system | ||
|
|
||
| - name: Prepare Build | ||
| run: bin/ci prepare_build | ||
|
|
||
| - name: Test | ||
| run: bin/ci build | ||
|
|
||
| test_linux_32: | ||
| env: | ||
| ARCH: i386 | ||
| ARCH_CMD: linux32 | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Download Crystal source | ||
| uses: actions/checkout@v2 | ||
|
|
||
| - name: Prepare System | ||
| run: bin/ci prepare_system | ||
|
|
||
| - name: Prepare Build | ||
| run: bin/ci prepare_build | ||
|
|
||
| - name: Test | ||
| run: bin/ci with_build_env 'make std_spec threads=1' | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What do you think of trying to run the compiler specs here too?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The compiler specs are executed later using the compiled compiler. But it takes a lot of time, so this is just a "fail fast" step to catch more common issues before that.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note I'm talking about
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh, sorry! Yup, that's probably a good idea. I just transferred as literal as possible what's currently running on CircleCI, but I don't know why it's not running the whole suite with
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The reason was that the resources were not enough to build the compiler in 32 bits environment. I doubt they will be able to succeed. Ref: #8283
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I mean otoh, while things like 32bit ARM is still widely used, 32bit x86 is basically dead anyways. I guess we wouldn't be too terrible people if we just drop it as a platform when most Linux distributions and OSes already did so.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. When we have some other 32 bits platform, I will accept to drop 32bits x86 builds. If we drop it before I fear there will be more things broken on 32 bits due to 64 bit assumptions. Maybe what we can do is to drop the 32 bits compiler and use cross-compilation to test 32 bits std-spec. If we do things that way it will be less things to maintain in the release process. And at the same time pave the way for something between tier 1 and tier 2 (or improve what is offered in tier 2).
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I pocked a bit at 32bit ARVMv7 support in the last couple of days and the current state is... not pretty.
So, that's some road ahead of us and will likely be in the Windows kind of state for a while where we just can run a whatever works right now CI.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. bumpy road ahead 😞 . Let's decouple the discussion of better 32 bits infra for after this PR then. Do you agree @jhass?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sounds good. |
||
|
|
||
| test_alpine: | ||
| env: | ||
| ARCH: x86_64-musl | ||
| ARCH_CMD: linux64 | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Download Crystal source | ||
| uses: actions/checkout@v2 | ||
|
|
||
| - name: Prepare System | ||
| run: bin/ci prepare_system | ||
|
|
||
| - name: Prepare Build | ||
| run: bin/ci prepare_build | ||
|
|
||
| - name: Test | ||
| run: bin/ci build | ||
|
|
||
| test_preview_mt: | ||
| env: | ||
| ARCH: x86_64 | ||
| ARCH_CMD: linux64 | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Download Crystal source | ||
| uses: actions/checkout@v2 | ||
|
|
||
| - name: Prepare System | ||
| run: bin/ci prepare_system | ||
|
|
||
| - name: Prepare Build | ||
| run: bin/ci prepare_build | ||
|
|
||
| - name: Make Crystal | ||
| run: bin/ci with_build_env 'make crystal' | ||
|
|
||
| - name: Test | ||
| run: bin/ci with_build_env 'CRYSTAL_WORKERS=4 make std_spec threads=1 FLAGS="-D preview_mt"' | ||
|
|
||
| check_format: | ||
| env: | ||
| ARCH: x86_64 | ||
| ARCH_CMD: linux64 | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Download Crystal source | ||
| uses: actions/checkout@v2 | ||
|
|
||
| - name: Prepare System | ||
| run: bin/ci prepare_system | ||
|
|
||
| - name: Prepare Build | ||
| run: bin/ci prepare_build | ||
|
|
||
| - name: Check Format | ||
| run: bin/ci format | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| name: macOS CI | ||
|
|
||
| on: [push, pull_request] | ||
|
|
||
| env: | ||
| TRAVIS_OS_NAME: osx | ||
| LLVM_CONFIG: /usr/local/opt/llvm/bin/llvm-config | ||
| PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig | ||
| SPEC_SPLIT_DOTS: 160 | ||
|
|
||
| jobs: | ||
| test_macos: | ||
| runs-on: macos-latest | ||
| steps: | ||
| - name: Download Crystal source | ||
| uses: actions/checkout@v2 | ||
|
|
||
| - name: Prepare System | ||
| run: bin/ci prepare_system | ||
|
|
||
| - name: Prepare Build | ||
| run: bin/ci prepare_build | ||
|
|
||
| - name: Test | ||
| run: bin/ci build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Won't this produce duplicate builds? I.e. one for the push and another for the PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well it does produce duplicates in some sense, when core contributors push a branch to the main repo and then create a PR from that. It's possible to tell it to test only when the push is to master, but then you lose the ability to just push a branch just for the purpose of running CI on it.
So this is fine. It's been this way in win.yml since the start, anyway.