Skip to content

Merge branch 'master' into new_mavengem #1003

Merge branch 'master' into new_mavengem

Merge branch 'master' into new_mavengem #1003

Workflow file for this run

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:
bootstrap-build:
runs-on: ubuntu-latest
strategy:
matrix:
java-version: ['8']
fail-fast: true
name: bootstrap JRuby build
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 }}
cache: 'maven'
- name: prefetch-polyglot
run: "cd .. ; mvn -B dependency:get -Dartifact=io.takari.polyglot:polyglot-ruby:0.4.11-SNAPSHOT -DremoteRepositories=central::default::https://repo.maven.apache.org/maven2,snapshots::::https://oss.sonatype.org/content/repositories/snapshots ; cd -"
- name: bootstrap
run: mvn -Pbootstrap clean package
- name: bundle install
run: bin/jruby -B --dev -S bundle install
- name: Save bootstrap build
id: cache-bootstrap-save
uses: actions/cache/save@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
rake-test:
runs-on: ubuntu-latest
strategy:
matrix:
target: ['test:jruby:int', 'spec:ruby:fast', 'spec:ji', 'spec:ffi']
java-version: ['8', '17']
fail-fast: false
name: rake ${{ matrix.target }} (Java ${{ matrix.java-version }})
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 }}
cache: 'maven'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- name: rake ${{ matrix.target }}
run: bin/jruby -S rake ${{ matrix.target }}
rake-test-8:
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 8)
steps:
- name: checkout
uses: actions/checkout@v3
- name: set up java 8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '8'
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: '8'
maven-version: '3.8.7'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- 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: checkout
uses: actions/checkout@v3
- name: set up java 8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 8
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: 8
maven-version: '3.8.7'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- name: rake test:jruby
run: bin/jruby --dev -S rake test:jruby
rake-test-17-indy:
runs-on: ubuntu-latest
strategy:
matrix:
target: ['test:mri:core:jit', 'test:jruby:jit', 'spec:compiler', 'spec:ruby:fast:jit']
java-version: ['17']
fail-fast: false
name: rake ${{ matrix.target }} (Java ${{ matrix.java-version }} +indy)
env:
JRUBY_OPTS: '-Xcompile.invokedynamic'
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 }}
cache: 'maven'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- 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']
# 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 }})
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 }}
cache: 'maven'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- name: mvn package ${{ matrix.package-flags }}
run: tool/maven-ci-script.sh
env:
PHASE: 'package ${{ matrix.package-flags }}'
mvn-test-8:
runs-on: ubuntu-latest
strategy:
matrix:
# jruby-jars phase only passes on 8
package-flags: ['-Pjruby-jars', '-Pjruby-jars,test -Dinvoker.test=extended', '-Pjruby_complete_jar_extended -Dinvoker.skip=true']
fail-fast: false
name: mvn ${{ matrix.package-flags }} (Java 8)
steps:
- name: checkout
uses: actions/checkout@v3
- name: set up java 8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '8'
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: '8'
maven-version: '3.8.7'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- name: mvn package ${{ matrix.package-flags }}
run: tool/maven-ci-script.sh
env:
PHASE: 'package ${{ matrix.package-flags }}'
ji-specs-8-indy:
runs-on: ubuntu-latest
strategy:
fail-fast: false
env:
JRUBY_OPTS: '-Xcompile.invokedynamic'
steps:
- name: checkout
uses: actions/checkout@v3
- name: set up java 8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 8
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: 8
maven-version: '3.8.7'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- name: rake spec:ji
run: bin/jruby -S rake spec:ji
regression-specs-jit:
runs-on: ubuntu-latest
strategy:
fail-fast: false
env:
JRUBY_OPTS: '-Xjit.threshold=0'
steps:
- name: checkout
uses: actions/checkout@v3
- name: set up java 8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 8
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: 8
maven-version: '3.8.7'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- 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 11)
env:
JAVA_OPTS: "-Djdk.io.File.enableADS=true"
JDK_JAVA_OPTS: "-Djdk.io.File.enableADS=true"
steps:
- name: checkout
uses: actions/checkout@v3
- name: set up java 11
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: 11
maven-version: '3.8.7'
- name: bootstrap
run: mvn -Pbootstrap clean package
- name: install bundler
run: bin/jruby --dev -S gem install bundler
- name: bundle install
run: bin/jruby --dev -S bundle install
- 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 8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '8'
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: '8'
maven-version: '3.8.7'
- 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 8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 8
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: 8
maven-version: '3.8.7'
- 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:11.5
ports: ["5432:5432"]
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
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: checkout
uses: actions/checkout@v3
- name: set up java 8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: 11
maven-version: '3.8.7'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- name: sequel
run: tool/sequel-github-actions.sh
concurrent-ruby:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: checkout
uses: actions/checkout@v3
- name: set up java 8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 8
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: 8
maven-version: '3.8.7'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- 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: mvn -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)
needs: bootstrap-build
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
cache: 'maven'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: rake ${{ matrix.target }}
# run: "bin/jruby -S rake ${{ matrix.target }}"
run: "true"
maven-test-openj9-8:
runs-on: ubuntu-latest
name: mvn -Ptest (OpenJ9 Java 8; disabled)
steps:
- name: checkout
uses: actions/checkout@v3
- name: set up java ${{ matrix.java-version }}
uses: actions/setup-java@v3
with:
distribution: 'adopt-openj9'
java-version: '8'
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: '8'
maven-version: '3.8.7'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- name: test profile
# run: "tool/maven-ci-script.sh"
run: "true"
env:
PHASE: 'package -Ptest'
rake-test-wip-8:
runs-on: ubuntu-latest
strategy:
matrix:
target: ['test:mri:core_wip', 'test:mri:stdlib_wip']
fail-fast: false
name: rake ${{ matrix.target }} (Java 8)
steps:
- name: checkout
uses: actions/checkout@v3
- name: set up java 8
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '8'
cache: 'maven'
- name: Setup Maven Action
uses: s4u/[email protected]
with:
java-version: '8'
maven-version: '3.8.7'
- name: Restore bootstrap build
id: cache-bootstrap-restore
uses: actions/cache/restore@v3
with:
path: |
bin
core
lib
shaded
test
key: ${{ github.sha }}-bootstrap
- name: conditional-bootstrap
if: ${{ steps.cache-bootstrap-restore.outputs.cache-hit == false }}
run: "mvn -Pbootstrap clean package && bin/jruby --dev -S gem install bundler && bin/jruby --dev -S bundle install"
- 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.3' }}
needs: [mvn-test, mvn-test-8, mvn-test-windows, dependency-check, rake-test, rake-test-17-indy, rake-test-8, test-versions, sequel, concurrent-ruby, jruby-tests-dev, ji-specs-8-indy, regression-specs-jit, mvn-test-m1]
uses: jruby/jruby/.github/workflows/snapshot-publish.yml@6cd0d4d96d9406635183d81cf91acc82cd78245f
secrets:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}