Skip to content

Commit

Permalink
Merge branch 'master' into class-parse
Browse files Browse the repository at this point in the history
  • Loading branch information
FnControlOption authored Feb 11, 2025
2 parents c78e46b + 6e80a8a commit d6b3ab3
Show file tree
Hide file tree
Showing 659 changed files with 20,629 additions and 4,945 deletions.
9 changes: 5 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ parameters:
distribution-scripts-version:
description: "Git ref for version of https://github.com/crystal-lang/distribution-scripts/"
type: string
default: "96e431e170979125018bd4fd90111a3147477eec"
default: "1ee31a42f0b06776a42fa4635b54dc9ec567e68a"
previous_crystal_base_url:
description: "Prefix for URLs to Crystal bootstrap compiler"
type: string
default: "https://github.com/crystal-lang/crystal/releases/download/1.12.2/crystal-1.12.2-1"
default: "https://github.com/crystal-lang/crystal/releases/download/1.15.1/crystal-1.15.1-1"

defaults:
environment: &env
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:

test_darwin:
macos:
xcode: 13.4.1
xcode: 15.4.0
environment:
<<: *env
TRAVIS_OS_NAME: osx
Expand Down Expand Up @@ -285,7 +285,7 @@ jobs:

dist_darwin:
macos:
xcode: 13.4.1
xcode: 15.3.0
shell: /bin/bash --login -eo pipefail
steps:
- restore_cache:
Expand Down Expand Up @@ -477,6 +477,7 @@ jobs:
- run: bin/ci prepare_system
- run: echo 'export CURRENT_TAG="$CIRCLE_TAG"' >> $BASH_ENV
- run: bin/ci prepare_build
- run: bin/ci with_build_env 'shards --version'
- run:
command: bin/ci build
no_output_timeout: 30m
Expand Down
20 changes: 15 additions & 5 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:base"],
"extends": [
"config:recommended"
],
"separateMajorMinor": false,
"packageRules": [
{
"matchDatasources": ["docker"],
"matchDatasources": [
"docker"
],
"enabled": false
},
{
"groupName": "GH Actions",
"matchManagers": ["github-actions"],
"schedule": ["after 5am and before 8am on Wednesday"]
"matchManagers": [
"github-actions"
],
"schedule": [
"after 5am and before 8am on Wednesday"
]
}
],
"labels": ["topic:infrastructure/ci"]
"labels": [
"topic:infrastructure/ci"
]
}
28 changes: 15 additions & 13 deletions .github/workflows/aarch64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,21 @@ name: AArch64 CI

on: [push, pull_request]

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
aarch64-musl-build:
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=2cpu-linux-arm64, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
uses: actions/checkout@v4
- name: Build Crystal
uses: docker://jhass/crystal:1.0.0-alpine-build
uses: docker://crystallang/crystal:1.13.2-alpine-84codes-build
with:
args: make crystal
- name: Upload Crystal executable
Expand All @@ -26,7 +28,7 @@ jobs:
src/llvm/ext/llvm_ext.o
aarch64-musl-test-stdlib:
needs: aarch64-musl-build
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=4cpu-linux-arm64, "family=m7g", ram=16, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
Expand All @@ -38,12 +40,12 @@ jobs:
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run stdlib specs
uses: docker://jhass/crystal:1.0.0-alpine-build
uses: docker://crystallang/crystal:1.13.2-alpine-84codes-build
with:
args: make std_spec FLAGS=-Duse_pcre
args: make std_spec
aarch64-musl-test-compiler:
needs: aarch64-musl-build
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=2cpu-linux-arm64, "family=m7g", ram=8, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
Expand All @@ -55,17 +57,17 @@ jobs:
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run compiler specs
uses: docker://jhass/crystal:1.0.0-alpine-build
uses: docker://crystallang/crystal:1.13.2-alpine-84codes-build
with:
args: make primitives_spec compiler_spec FLAGS=-Dwithout_ffi
aarch64-gnu-build:
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=2cpu-linux-arm64, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
uses: actions/checkout@v4
- name: Build Crystal
uses: docker://jhass/crystal:1.0.0-build
uses: docker://crystallang/crystal:1.13.2-ubuntu-84codes-build
with:
args: make crystal
- name: Upload Crystal executable
Expand All @@ -77,7 +79,7 @@ jobs:
src/llvm/ext/llvm_ext.o
aarch64-gnu-test-stdlib:
needs: aarch64-gnu-build
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=4cpu-linux-arm64, "family=m7g", ram=16, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
Expand All @@ -89,12 +91,12 @@ jobs:
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run stdlib specs
uses: docker://jhass/crystal:1.0.0-build
uses: docker://crystallang/crystal:1.13.2-ubuntu-84codes-build
with:
args: make std_spec
aarch64-gnu-test-compiler:
needs: aarch64-gnu-build
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=2cpu-linux-arm64, "family=m7g", ram=8, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
Expand All @@ -106,6 +108,6 @@ jobs:
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run compiler specs
uses: docker://jhass/crystal:1.0.0-build
uses: docker://crystallang/crystal:1.13.2-ubuntu-84codes-build
with:
args: make primitives_spec compiler_spec
35 changes: 35 additions & 0 deletions .github/workflows/backport.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# WARNING:
# When extending this action, be aware that $GITHUB_TOKEN allows write access to
# the GitHub repository. This means that it should not evaluate user input in a
# way that allows code injection.

name: Backport

on:
pull_request_target:
types: [closed, labeled]

permissions:
contents: write # so it can comment
pull-requests: write # so it can create pull requests

jobs:
backport:
name: Backport Pull Request
if: github.repository_owner == 'crystal-lang' && github.event.pull_request.merged == true && (github.event_name != 'labeled' || startsWith('backport', github.event.label.name))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ secrets.BACKPORT_ACTION_GITHUB_PAT }}

- name: Create backport PR
uses: korthout/backport-action@be567af183754f6a5d831ae90f648954763f17f5 # v3.1.0
with:
github_token: ${{ secrets.BACKPORT_ACTION_GITHUB_PAT }}
# Config README: https://github.com/korthout/backport-action#backport-action
copy_labels_pattern: '^(breaking-change|security|topic:.*|kind:.*|platform:.*)$'
copy_milestone: true
pull_description: |-
Automated backport of #${pull_number} to `${target_branch}`, triggered by a label.
45 changes: 45 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Docs

on:
push:
branches:
- master

permissions: {}

env:
TRAVIS_OS_NAME: linux

jobs:
deploy_api_docs:
if: github.repository_owner == 'crystal-lang'
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
18 changes: 10 additions & 8 deletions .github/workflows/interpreter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ name: Interpreter Test

on: [push, pull_request]

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
Expand All @@ -11,9 +13,9 @@ env:

jobs:
test-interpreter_spec:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
container:
image: crystallang/crystal:1.12.2-build
image: crystallang/crystal:1.15.1-build
name: "Test Interpreter"
steps:
- uses: actions/checkout@v4
Expand All @@ -22,9 +24,9 @@ jobs:
run: make interpreter_spec junit_output=.junit/interpreter_spec.xml

build-interpreter:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
container:
image: crystallang/crystal:1.12.2-build
image: crystallang/crystal:1.15.1-build
name: Build interpreter
steps:
- uses: actions/checkout@v4
Expand All @@ -41,9 +43,9 @@ jobs:
test-interpreter-std_spec:
needs: build-interpreter
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
container:
image: crystallang/crystal:1.12.2-build
image: crystallang/crystal:1.15.1-build
strategy:
matrix:
part: [0, 1, 2, 3]
Expand All @@ -65,9 +67,9 @@ jobs:

test-interpreter-primitives_spec:
needs: build-interpreter
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
container:
image: crystallang/crystal:1.12.2-build
image: crystallang/crystal:1.15.1-build
name: "Test primitives_spec with interpreter"
steps:
- uses: actions/checkout@v4
Expand Down
38 changes: 4 additions & 34 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ name: Linux CI

on: [push, pull_request]

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
Expand All @@ -18,8 +20,9 @@ jobs:
DOCKER_TEST_PREFIX: crystallang/crystal:${{ matrix.crystal_bootstrap_version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
crystal_bootstrap_version: [1.7.3, 1.8.2, 1.9.2, 1.10.1, 1.11.2, 1.12.2]
crystal_bootstrap_version: [1.7.3, 1.8.2, 1.9.2, 1.10.1, 1.11.2, 1.12.2, 1.13.3, 1.14.1, 1.15.1]
flags: [""]
include:
# libffi is only available starting from the 1.2.2 build images
Expand Down Expand Up @@ -106,36 +109,3 @@ jobs:

- 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
Loading

0 comments on commit d6b3ab3

Please sign in to comment.