diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 1a21e38..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,33 +0,0 @@ -version: 2.1 - -# See latest version of Gusto orbs at https://circleci.com/orbs/registry/orb/gusto/gusto -orbs: - gusto: gusto/gusto@0.0.12 - -jobs: - ruby-test: - machine: - image: circleci/classic:201808-01 # docker 18.06.0-ce, docker-compose 1.22.0 - steps: - - gusto/bundle-install - - run: bundle exec rake - - store_artifacts: - path: coverage - release: - executor: gusto/ruby-2-3 - steps: - - gusto/semantic-release-ruby - -workflows: - version: 2 - main: - jobs: - - gusto/ruby-lint - - ruby-test - - release: - filters: - branches: - only: master - requires: - - gusto/ruby-lint - - ruby-test diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..7388532 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,38 @@ +name: Test Suite + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Ruby 2.7 + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.7 + + - name: Install Docker and Docker Compose + run: | + # Install Docker using the official convenience script + curl -fsSL https://get.docker.com -o get-docker.sh + sh get-docker.sh + sudo apt-get install -y docker-compose + + - name: Build Docker image + run: docker-compose build + + - name: Install environment support + run: gem install rake rspec + + - name: Run tests + run: rake diff --git a/.gitignore b/.gitignore index 1b23ec9..80dfc52 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ spec/node-client/dist coverage node_modules +.bundle # Workspace .idea diff --git a/.ruby-version b/.ruby-version index 553f50e..6a81b4c 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -ruby-2.5.7 +2.7.8 diff --git a/Dockerfile b/Dockerfile index 3a69499..ca63ecd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,8 @@ -FROM ruby:2.5.7 +FROM ruby:2.7.8 # Install dependency packages RUN apt-get update && apt-get install -y \ + chromium \ curl \ fonts-liberation \ libappindicator3-1 \ @@ -15,6 +16,7 @@ RUN apt-get update && apt-get install -y \ libgtk-3-0 \ libnspr4 \ libnss3 \ + libvulkan1 \ libx11-xcb1 \ libxcomposite1 \ libxcursor1 \ @@ -27,12 +29,6 @@ RUN apt-get update && apt-get install -y \ nodejs \ xdg-utils -# Install Chrome -RUN wget --quiet https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ - && dpkg -i google-chrome-stable_current_amd64.deb \ - && apt-get -f install \ - && rm -f /google-chrome-stable_current_amd64.deb - # Install Yarn ENV PATH=/root/.yarn/bin:$PATH RUN touch ~/.bashrc && \ @@ -46,7 +42,7 @@ WORKDIR /app COPY .ruby-version grpc-web.gemspec Gemfile Gemfile.lock /app/ COPY lib/grpc_web/version.rb /app/lib/grpc_web/ -RUN gem install bundler \ +RUN gem install bundler -v 2.4.22 \ && bundle config --global frozen 1 \ && bundle install -j4 --retry 3 \ # Remove unneeded files (cached *.gem, *.o, *.c) diff --git a/Gemfile.lock b/Gemfile.lock index ac738f5..485377a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,79 +2,96 @@ PATH remote: . specs: grpc-web (1.2.1) + google-protobuf (~> 3.13.0) grpc (~> 1.0) rack (>= 1.6.0, < 3.0) GEM remote: https://rubygems.org/ specs: - addressable (2.7.0) - public_suffix (>= 2.0.2, < 5.0) - apparition (0.1.0) - backports - capybara (~> 3.12, < 4) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + apparition (0.6.0) + capybara (~> 3.13, < 4) websocket-driver (>= 0.6.5) - ast (2.4.0) - backports (3.15.0) - byebug (11.0.1) - capybara (3.15.1) + ast (2.4.3) + base64 (0.2.0) + bigdecimal (3.1.9) + byebug (11.1.3) + capybara (3.39.2) addressable + matrix mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) - regexp_parser (~> 1.2) + regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - coderay (1.1.2) - crack (0.4.3) - safe_yaml (~> 1.0.0) - diff-lcs (1.3) - docile (1.3.2) + coderay (1.1.3) + crack (1.0.0) + bigdecimal + rexml + diff-lcs (1.6.1) + docile (1.4.1) google-protobuf (3.13.0) + google-protobuf (3.13.0-universal-darwin) + google-protobuf (3.13.0-x86_64-linux) googleapis-common-protos-types (1.0.5) google-protobuf (~> 3.11) - grpc (1.32.0) + grpc (1.34.0) google-protobuf (~> 3.13) googleapis-common-protos-types (~> 1.0) - hashdiff (1.0.0) - jaro_winkler (1.5.4) - json (2.3.0) - method_source (0.9.2) - mini_mime (1.0.2) - mini_portile2 (2.4.0) - nokogiri (1.10.8) - mini_portile2 (~> 2.4.0) - parallel (1.19.1) - parser (2.7.0.2) - ast (~> 2.4.0) - pry (0.12.2) - coderay (~> 1.1.0) - method_source (~> 0.9.0) - pry-byebug (3.7.0) + grpc (1.34.0-universal-darwin) + google-protobuf (~> 3.13) + googleapis-common-protos-types (~> 1.0) + grpc (1.34.0-x86_64-linux) + google-protobuf (~> 3.13) + googleapis-common-protos-types (~> 1.0) + hashdiff (1.1.2) + jaro_winkler (1.5.6) + matrix (0.4.2) + method_source (1.1.0) + mini_mime (1.1.5) + nokogiri (1.15.7-aarch64-linux) + racc (~> 1.4) + nokogiri (1.15.7-arm64-darwin) + racc (~> 1.4) + nokogiri (1.15.7-x86_64-linux) + racc (~> 1.4) + parallel (1.26.3) + parser (3.3.7.4) + ast (~> 2.4.1) + racc + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) byebug (~> 11.0) - pry (~> 0.10) - public_suffix (4.0.1) - rack (2.0.9) - rack-cors (1.1.0) + pry (>= 0.13, < 0.15) + public_suffix (5.1.1) + racc (1.8.1) + rack (2.2.13) + rack-cors (2.0.2) rack (>= 2.0.0) - rack-test (1.1.0) - rack (>= 1.0, < 3) - rainbow (3.0.0) - rake (13.0.1) - regexp_parser (1.6.0) - rspec (3.9.0) - rspec-core (~> 3.9.0) - rspec-expectations (~> 3.9.0) - rspec-mocks (~> 3.9.0) - rspec-core (3.9.0) - rspec-support (~> 3.9.0) - rspec-expectations (3.9.0) + rack-test (2.2.0) + rack (>= 1.3) + rainbow (3.1.1) + rake (13.2.1) + regexp_parser (2.10.0) + rexml (3.4.1) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.3) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.9.0) - rspec-mocks (3.9.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.2) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.9.0) - rspec-support (3.9.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.2) rubocop (0.79.0) jaro_winkler (~> 1.5.1) parallel (~> 1.10) @@ -82,28 +99,31 @@ GEM rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 1.7) - rubocop-rspec (1.37.1) + rubocop-rspec (1.41.0) rubocop (>= 0.68.1) - ruby-progressbar (1.10.1) - safe_yaml (1.0.5) - simplecov (0.17.1) + ruby-progressbar (1.13.0) + simplecov (0.22.0) docile (~> 1.1) - json (>= 1.8, < 3) - simplecov-html (~> 0.10.0) - simplecov-html (0.10.2) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) unicode-display_width (1.6.1) - webmock (3.8.2) - addressable (>= 2.3.6) + webmock (3.25.1) + addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - websocket-driver (0.7.1) + websocket-driver (0.7.7) + base64 websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.4) + websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) PLATFORMS - ruby + aarch64-linux + arm64-darwin-24 + x86_64-linux DEPENDENCIES apparition @@ -118,4 +138,4 @@ DEPENDENCIES webmock BUNDLED WITH - 2.1.4 + 2.4.22 diff --git a/docker-compose.yml b/docker-compose.yml index 843f111..319111a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.2' - services: ruby: build: . diff --git a/grpc-web.gemspec b/grpc-web.gemspec index 6f30f52..cc12637 100644 --- a/grpc-web.gemspec +++ b/grpc-web.gemspec @@ -21,6 +21,7 @@ Gem::Specification.new do |spec| spec.require_paths = ['lib'] spec.add_dependency 'grpc', '~> 1.0' + spec.add_dependency 'google-protobuf', '~> 3.13.0' spec.add_dependency 'rack', '>= 1.6.0', '< 3.0' spec.add_development_dependency 'apparition' diff --git a/spec/pb-js-grpc-web-text/.keep b/spec/pb-js-grpc-web-text/.keep new file mode 100644 index 0000000..e69de29 diff --git a/spec/pb-js-grpc-web/.keep b/spec/pb-js-grpc-web/.keep new file mode 100644 index 0000000..e69de29