diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e482521..a5039dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -162,37 +162,6 @@ jobs: bundle install ruby -rrcd_test -S rake test - test-x86_64-linux-setup-ruby: - name: "${{ matrix.platform }} setup-ruby(${{ matrix.ruby }})" - needs: build_native_gem - strategy: - fail-fast: false - matrix: - platform: [x86_64-linux, x86_64-linux-gnu] - ruby: ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"] - include: - - { ruby: "2.7", rubygems: "3.4.22" } - - { ruby: "2.6", rubygems: "3.4.22" } - - { ruby: "2.5", rubygems: "3.3.26" } - - { ruby: "2.4", rubygems: "3.3.26" } - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby }} - - name: Download gem-${{ matrix.platform }} - uses: actions/download-artifact@v3 - with: - name: gem-${{ matrix.platform }} - - name: Test gem-${{ matrix.platform }} - run: | - gem update --system ${{ matrix.rubygems }} - gem install --local *.gem --verbose - cd test/rcd_test/ - bundle install - ruby -rrcd_test -S rake test - test_architecture_matrix: name: "${{ matrix.platform }} ${{ matrix.ruby }}" needs: build_native_gem @@ -200,6 +169,9 @@ jobs: fail-fast: false matrix: platform: + - aarch64-linux + - aarch64-linux-gnu + - aarch64-linux-musl - arm-linux - arm-linux-gnu - arm-linux-musl @@ -217,10 +189,14 @@ jobs: - { ruby: "2.5", rubygems: "3.3.26" } - { ruby: "2.4", rubygems: "3.3.26" } # declare docker image for each platform + - { platform: aarch64-linux-musl, docker_tag: "-alpine" } - { platform: arm-linux-musl, docker_tag: "-alpine" } - { platform: x86-linux-musl, docker_tag: "-alpine" } - { platform: x86_64-linux-musl, docker_tag: "-alpine" } # declare docker platform for each platform + - { platform: aarch64-linux, docker_platform: "--platform=linux/arm64" } + - { platform: aarch64-linux-gnu, docker_platform: "--platform=linux/arm64" } + - { platform: aarch64-linux-musl, docker_platform: "--platform=linux/arm64" } - { platform: arm-linux, docker_platform: "--platform=linux/arm/v7" } - { platform: arm-linux-gnu, docker_platform: "--platform=linux/arm/v7" } - { platform: arm-linux-musl, docker_platform: "--platform=linux/arm/v7" } @@ -247,88 +223,20 @@ jobs: ruby -rrcd_test -S rake test " - test_aarch64-linux-gnu: - name: aarch64-linux-gnu - needs: build_native_gem - strategy: - fail-fast: false - matrix: - ruby: ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"] - platform: [aarch64-linux] - include: - # ruby 3.0 and earlier ship rubygems < 3.2.33, so can't recognize the -gnu suffix - - ruby: "3.3" - platform: aarch64-linux-gnu - - ruby: "3.2" - platform: aarch64-linux-gnu - - ruby: "3.1" - platform: aarch64-linux-gnu - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Download gem-${{ matrix.platform }} - uses: actions/download-artifact@v3 - with: - name: gem-${{ matrix.platform }} - - name: Run tests - run: | - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - docker run --rm -v $PWD:/work -w /work \ - --platform=linux/arm64 ruby:${{ matrix.ruby }} \ - sh -c " - gem install --local *.gem --verbose && - cd test/rcd_test/ && - bundle install && - ruby -rrcd_test -S rake test - " - - test_aarch64-linux-musl: - name: aarch64-linux-musl - needs: build_native_gem - strategy: - fail-fast: false - matrix: - ruby: ["3.3", "3.2", "3.1", "3.0", "2.7"] # ruby:2.6-alpine and earlier ship with rubygems that doesn't recognize the -musl suffix - platform: [aarch64-linux-musl] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Download gem-${{ matrix.platform }} - uses: actions/download-artifact@v3 - with: - name: gem-${{ matrix.platform }} - - name: Run tests - run: | - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - docker run --rm -v $PWD:/work -w /work \ - --platform=linux/arm64 ruby:${{ matrix.ruby }}-alpine \ - sh -c " - gem install --local *.gem --verbose && - cd test/rcd_test/ && - bundle install && - ruby -rrcd_test -S rake test - " - test_native_gem: - name: test native + name: "${{ matrix.platform }} setup-ruby(${{ matrix.ruby }})" needs: build_native_gem strategy: fail-fast: false matrix: - os: - - macos - ruby: - - "3.3" - - "3.2" - - "3.1" - - "3.0" - - "2.7" - - "2.6" - - "2.5" - - "2.4" + ruby: ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"] include: - os: macos platform: x86_64-darwin + - os: ubuntu + platform: x86_64-linux + - os: ubuntu + platform: x86_64-linux-gnu - os: ubuntu ruby: jruby platform: jruby @@ -356,6 +264,11 @@ jobs: - os: windows ruby: "3.3" platform: x64-mingw-ucrt + # declare rubygems for each ruby version + - { ruby: "2.7", rubygems: "3.4.22" } + - { ruby: "2.6", rubygems: "3.4.22" } + - { ruby: "2.5", rubygems: "3.3.26" } + - { ruby: "2.4", rubygems: "3.3.26" } runs-on: ${{ matrix.os }}-latest steps: - uses: actions/checkout@v3 @@ -370,16 +283,16 @@ jobs: uses: actions/download-artifact@v3 with: name: gem-${{ matrix.platform }} - - name: Install gem-${{ matrix.platform }} - run: gem install --local *.gem --verbose - - name: Run tests + - name: Test gem-${{ matrix.platform }} run: | + gem update --system ${{ matrix.rubygems }} + gem install --local *.gem --verbose cd test/rcd_test/ bundle install ruby -rrcd_test -S rake test - test_static_native_gem: - name: test static + test_windows_static: + name: "static ${{ matrix.platform }} ${{ matrix.ruby }}" needs: build_native_gem strategy: fail-fast: false @@ -431,8 +344,8 @@ jobs: bundle install ruby -rrcd_test -S rake test - test_native_gem_multiarch: - name: ${{ matrix.platform }} on ${{ matrix.from_image }} + test_ad_hoc: + name: "${{ matrix.platform }} on ${{ matrix.from_image }}" needs: build_native_gem strategy: fail-fast: false