Skip to content

Basic MinGW-w64 cross-compilation support #12515

Basic MinGW-w64 cross-compilation support

Basic MinGW-w64 cross-compilation support #12515

Workflow file for this run

name: Linux CI
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
env:
TRAVIS_OS_NAME: linux
SPEC_SPLIT_DOTS: 160
jobs:
x86_64-gnu-test:
env:
ARCH: x86_64
ARCH_CMD: linux64
DOCKER_TEST_PREFIX: crystallang/crystal:${{ matrix.crystal_bootstrap_version }}
runs-on: ubuntu-latest
strategy:
matrix:
crystal_bootstrap_version: [1.7.3, 1.8.2, 1.9.2, 1.10.1, 1.11.2, 1.12.2, 1.13.3]
flags: [""]
include:
# libffi is only available starting from the 1.2.2 build images
- crystal_bootstrap_version: 1.0.0
flags: "FLAGS=-Dwithout_ffi USE_PCRE1=true"
- crystal_bootstrap_version: 1.1.1
flags: "FLAGS=-Dwithout_ffi USE_PCRE1=true"
- crystal_bootstrap_version: 1.2.2
flags: "USE_PCRE1=true"
- crystal_bootstrap_version: 1.3.2
flags: "USE_PCRE1=true"
- crystal_bootstrap_version: 1.4.1
flags: "USE_PCRE1=true"
- crystal_bootstrap_version: 1.5.1
flags: "USE_PCRE1=true"
- crystal_bootstrap_version: 1.6.2
flags: "USE_PCRE1=true"
steps:
- name: Download Crystal source
uses: actions/checkout@v4
- name: Prepare System
run: bin/ci prepare_system
- name: Prepare Build
run: bin/ci prepare_build
- name: Test
run: ${{ matrix.flags }} bin/ci build
x86_64-musl-test:
env:
ARCH: x86_64-musl
ARCH_CMD: linux64
runs-on: ubuntu-latest
steps:
- name: Download Crystal source
uses: actions/checkout@v4
- name: Prepare System
run: bin/ci prepare_system
- name: Prepare Build
run: bin/ci prepare_build
- name: Test
run: bin/ci build
x86_64-gnu-test-preview_mt:
env:
ARCH: x86_64
ARCH_CMD: linux64
runs-on: ubuntu-latest
steps:
- name: Download Crystal source
uses: actions/checkout@v4
- 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@v4
- name: Prepare System
run: bin/ci prepare_system
- name: Prepare Build
run: bin/ci prepare_build
- name: Check Format
run: bin/ci format
deploy_api_docs:
if: github.repository_owner == 'crystal-lang' && github.event_name == 'push' && github.ref == 'refs/heads/master'
env:
ARCH: x86_64
ARCH_CMD: linux64
runs-on: ubuntu-latest
steps:
- name: Download Crystal source
uses: actions/checkout@v4
- name: Prepare System
run: bin/ci prepare_system
- name: Prepare Build
run: bin/ci prepare_build
- name: Build docs
run: bin/ci with_build_env 'make crystal docs threads=1'
- name: Set revision
run: echo $GITHUB_SHA > ./docs/revision.txt
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Deploy API docs to S3
run: |
aws s3 sync ./docs s3://crystal-api/api/master --delete