Enable invokedynamic by default #1361
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: JRuby CI | ||
on: [push, pull_request] | ||
env: | ||
JAVA_OPTS: '-XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Xms60M -Xmx1G -XX:InitialCodeCacheSize=40M -XX:ReservedCodeCacheSize=120M' | ||
permissions: | ||
contents: read | ||
jobs: | ||
rake-test: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
target: ['test:jruby:int', 'spec:ruby:fast', 'spec:ji', 'spec:ffi'] | ||
java-version: ['17', '21'] | ||
fail-fast: false | ||
name: rake ${{ matrix.target }} (Java ${{ matrix.java-version }}) | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java ${{ matrix.java-version }} | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'zulu' | ||
java-version: ${{ matrix.java-version }} | ||
cache: 'maven' | ||
- name: rake ${{ matrix.target }} | ||
run: bin/jruby -S rake ${{ matrix.target }} | ||
rake-test-17: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
target: ['test:mri:core:jit', 'test:mri:extra', 'spec:ruby:fast:jit', 'test:mri:stdlib', 'spec:ruby:slow', 'spec:ruby:debug', 'test:jruby:aot', 'test:slow_suites', 'spec:compiler', 'spec:regression', 'spec:jruby', 'spec:jrubyc', 'spec:profiler'] | ||
fail-fast: false | ||
name: rake ${{ matrix.target }} (Java 17) | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'zulu' | ||
java-version: '17' | ||
cache: 'maven' | ||
- name: rake ${{ matrix.target }} | ||
run: bin/jruby -S rake ${{ matrix.target }} | ||
jruby-tests-dev: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
env: | ||
JRUBY_OPTS: '--dev' | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'temurin' | ||
java-version: 17 | ||
cache: 'maven' | ||
- name: rake test:jruby | ||
run: bin/jruby --dev -S rake test:jruby | ||
rake-test-17-indy-off: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
target: ['test:mri:core:jit', 'test:jruby:jit', 'spec:compiler', 'spec:ruby:fast:jit', 'spec:ji'] | ||
java-version: ['17', '21'] | ||
fail-fast: false | ||
name: rake ${{ matrix.target }} (Java ${{ matrix.java-version }} +indy) | ||
env: | ||
JRUBY_OPTS: '-Xcompile.invokedynamic=false -X+C -Xjit.threshold=0' | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java ${{ matrix.java-version }} | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'zulu' | ||
java-version: ${{ matrix.java-version }} | ||
cache: 'maven' | ||
- name: rake ${{ matrix.target }} | ||
run: bin/jruby -S rake ${{ matrix.target }} | ||
mvn-test: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
package-flags: ['-Pmain', '-Pdist', '-Pcomplete', '-Posgi', '-Ptest', '-Pmain,test -Dinvoker.test=extended'] | ||
java-version: [17, 21] | ||
fail-fast: false | ||
name: mvn ${{ matrix.package-flags }} (Java ${{ matrix.java-version }}) | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java ${{ matrix.java-version }} | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'zulu' | ||
java-version: ${{ matrix.java-version }} | ||
cache: 'maven' | ||
- name: mvn package ${{ matrix.package-flags }} | ||
run: tool/maven-ci-script.sh | ||
env: | ||
PHASE: 'package ${{ matrix.package-flags }}' | ||
mvn-test-extended: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
package-flags: ['-Pjruby-jars', '-Pjruby-jars,test -Dinvoker.test=extended', '-Pjruby_complete_jar_extended -Dinvoker.skip=true'] | ||
java-version: [17, 21] | ||
fail-fast: false | ||
name: mvn ${{ matrix.package-flags }} (Java ${{ matrix.java-version }}) | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java ${{ matrix.java-version }} | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: temurin | ||
java-version: ${{ matrix.java-version }} | ||
cache: 'maven' | ||
- name: mvn package ${{ matrix.package-flags }} | ||
run: tool/maven-ci-script.sh | ||
env: | ||
PHASE: 'package ${{ matrix.package-flags }}' | ||
regression-specs-jit: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
env: | ||
JRUBY_OPTS: '-Xjit.threshold=0' | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'zulu' | ||
java-version: 17 | ||
cache: 'maven' | ||
- name: rake spec:regression | ||
run: bin/jruby -S rake spec:regression | ||
mvn-test-windows: | ||
runs-on: windows-latest | ||
strategy: | ||
fail-fast: false | ||
name: mvn -Ptest, rake test:jruby (Windows, Java 17) | ||
env: | ||
JAVA_OPTS: "-Djdk.io.File.enableADS=true" | ||
JDK_JAVA_OPTS: "-Djdk.io.File.enableADS=true" | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'zulu' | ||
java-version: 17 | ||
cache: 'maven' | ||
- name: rake test:jruby | ||
run: bin/jruby -S rake test:jruby TESTOPTS="--no-show-detail-immediately" | ||
env: | ||
JRUBY_OPTS: '' | ||
- name: mvn -P test | ||
run: ./mvnw package -B -Ptest | ||
dependency-check: | ||
runs-on: ubuntu-latest | ||
name: Dependency check | ||
steps: | ||
- name: checkout | ||
uses: actions/checkout@v3 | ||
- name: set up java 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'zulu' | ||
java-version: '17' | ||
cache: 'maven' | ||
- name: dependency convergence | ||
run: tool/maven-ci-script.sh | ||
env: | ||
PHASE: 'install -Pmain -Dinvoker.test=GH-6081*' | ||
test-versions: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
name: Verify build artifacts | ||
steps: | ||
- name: checkout | ||
uses: actions/checkout@v3 | ||
- name: set up java 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'zulu' | ||
java-version: 17 | ||
cache: 'maven' | ||
- name: maven-ci-script.sh | ||
run: tool/maven-ci-script.sh | ||
env: | ||
COMMAND: 'test/check_versions.sh' | ||
sequel: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
services: | ||
postgres: | ||
image: postgres:latest | ||
ports: [ "5432:5432" ] | ||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | ||
env: | ||
POSTGRES_PASSWORD: postgres | ||
mysql: | ||
image: mysql:latest | ||
env: | ||
MYSQL_ROOT_PASSWORD: root | ||
MYSQL_DATABASE: sequel_test | ||
ports: [ "3306:3306" ] | ||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'temurin' | ||
java-version: 17 | ||
cache: 'maven' | ||
- name: sequel | ||
run: tool/sequel-github-actions.sh | ||
concurrent-ruby: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'temurin' | ||
java-version: 17 | ||
cache: 'maven' | ||
- name: concurrent-ruby | ||
run: tool/concurrent-ruby-github-actions.sh | ||
# mvn-test-m1: | ||
# runs-on: [self-hosted, macos, aarch64] | ||
# | ||
# strategy: | ||
# matrix: | ||
# package-flags: ['-Ptest'] | ||
# # dist, complete, and osgi do not pass on 17 yet | ||
# java-version: ['11'] | ||
# fail-fast: false | ||
# | ||
# name: mvn ${{ matrix.package-flags }} (Java ${{ matrix.java-version }} Apple aarch64) | ||
# | ||
# steps: | ||
# - name: checkout | ||
# uses: actions/checkout@v3 | ||
# - name: set up java ${{ matrix.java-version }} | ||
# uses: actions/setup-java@v3 | ||
# with: | ||
# distribution: 'zulu' | ||
# java-version: ${{ matrix.java-version }} | ||
# architecture: arm | ||
# - name: bootstrap | ||
# run: ./mvnw -Pbootstrap clean package | ||
# - name: mvn package ${{ matrix.package-flags }} | ||
# run: tool/maven-ci-script.sh | ||
# env: | ||
# PHASE: 'package ${{ matrix.package-flags }}' | ||
# | ||
# spec-m1: | ||
# runs-on: [self-hosted, macos, aarch64] | ||
# | ||
# strategy: | ||
# matrix: | ||
# target: ['spec:ffi'] | ||
# java-version: ['11'] | ||
# fail-fast: false | ||
# | ||
# name: rake ${{ matrix.target }} (Java ${{ matrix.java-version }} Apple aarch64) | ||
# | ||
# steps: | ||
# - name: Bootstrap build | ||
# uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
# with: | ||
# java-version: 17 | ||
# - name: set up java ${{ matrix.java-version }} | ||
# uses: actions/setup-java@v3 | ||
# with: | ||
# distribution: 'zulu' | ||
# java-version: ${{ matrix.java-version }} | ||
# architecture: arm | ||
# cache: 'maven' | ||
# - name: rake ${{ matrix.target }} | ||
## run: "bin/jruby -S rake ${{ matrix.target }}" | ||
# run: "true" | ||
maven-test-openj9-17: | ||
runs-on: ubuntu-latest | ||
name: mvn -Ptest (OpenJ9 Java 17) | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java ${{ matrix.java-version }} | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'adopt-openj9' | ||
java-version: '17' | ||
cache: 'maven' | ||
- name: test profile | ||
run: "tool/maven-ci-script.sh" | ||
env: | ||
PHASE: 'package -Ptest' | ||
rake-test-wip-17: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
target: ['test:mri:core_wip', 'test:mri:stdlib_wip'] | ||
fail-fast: false | ||
name: rake ${{ matrix.target }} (Java 17) | ||
steps: | ||
- name: Bootstrap build | ||
uses: jruby/jruby-ci-build@fbd2cf981aaff3eae190ac20086fa161be3d9060 | ||
with: | ||
java-version: 17 | ||
- name: set up java 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'zulu' | ||
java-version: '17' | ||
cache: 'maven' | ||
- name: rake ${{ matrix.target }} | ||
continue-on-error: true | ||
run: "bin/jruby -S rake ${{ matrix.target }}" | ||
- run: true | ||
publish-snapshot: | ||
permissions: | ||
contents: none | ||
if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/jruby-9.5' }} | ||
needs: [mvn-test, mvn-test-extended, mvn-test-windows, dependency-check, rake-test, rake-test-17-indy, rake-test-17, test-versions, sequel, concurrent-ruby, jruby-tests-dev, regression-specs-jit] | ||
uses: jruby/jruby/.github/workflows/snapshot-publish.yml@6cd0d4d96d9406635183d81cf91acc82cd78245f | ||
secrets: | ||
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | ||
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} |