| name: Ruby Install Tests |
| |
| on: |
| push: |
| branches: |
| - main |
| - '[0-9]+.x' |
| pull_request: |
| branches: |
| - main |
| - '[0-9]+.x' |
| workflow_dispatch: |
| |
| jobs: |
| test_ruby_gems: |
| name: Test ruby gems |
| runs-on: ubuntu-20.04 |
| strategy: |
| fail-fast: false |
| matrix: |
| ruby: [2.6, 2.7, 3.0, 3.1, 3.2, jruby-9.2, jruby-9.3] |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Install bazel |
| run: | |
| sudo apt-get install -qy wget |
| mkdir $HOME/bin |
| wget -O $HOME/bin/bazel https://github.com/bazelbuild/bazel/releases/download/6.0.0/bazel-6.0.0-linux-x86_64 |
| chmod a+x $HOME/bin/bazel |
| - name: Install git |
| run: | |
| sudo apt-get install -qy --no-install-recommends git |
| - name: Install ruby |
| uses: ruby/setup-ruby@v1 |
| with: |
| ruby-version: ${{ matrix.ruby }} |
| - name: Checkout |
| uses: actions/checkout@v3 |
| with: |
| submodules: recursive |
| - name: Build cruby gem |
| run: $HOME/bin/bazel run ruby:release |
| if: ${{ !contains(matrix.ruby, 'jruby') }} |
| - name: Install cruby gem |
| run: gem install bazel-bin/ruby/release.runfiles/com_google_protobuf/tmp/google-protobuf-* |
| if: ${{ !contains(matrix.ruby, 'jruby') }} |
| - name: Build jruby gem |
| run: $HOME/bin/bazel run ruby:jruby_release |
| if: ${{ contains(matrix.ruby, 'jruby') }} |
| - name: Install jruby gem |
| run: gem install bazel-bin/ruby/jruby_release.runfiles/com_google_protobuf/tmp/google-protobuf-* |
| if: ${{ contains(matrix.ruby, 'jruby') }} |
| - name: Test installation |
| run: | |
| bazel run //:protoc -- --proto_path=$GITHUB_WORKSPACE/src --proto_path=$GITHUB_WORKSPACE/ruby/tests --proto_path=$GITHUB_WORKSPACE/ruby --ruby_out=$GITHUB_WORKSPACE/ruby tests/test_import_proto2.proto |
| bazel run //:protoc -- --proto_path=$GITHUB_WORKSPACE/src --proto_path=$GITHUB_WORKSPACE/ruby/tests --proto_path=$GITHUB_WORKSPACE/ruby --ruby_out=$GITHUB_WORKSPACE/ruby tests/basic_test.proto |
| ruby ruby/tests/basic.rb |