From 3a3664666c0717db547efba4bfbae26ae597a793 Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 17:28:35 -0600 Subject: [PATCH 01/15] Get the build running and passing specs on host machine --- .gitignore | 1 + .ruby-version | 2 +- Dockerfile | 14 +++-- Gemfile.lock | 141 +++++++++++++++++++++++++-------------------- docker-compose.yml | 2 - grpc-web.gemspec | 1 + 6 files changed, 88 insertions(+), 73 deletions(-) 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..23f33fb 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 \ @@ -28,10 +30,10 @@ RUN apt-get update && apt-get install -y \ 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 +# 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 @@ -46,7 +48,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.3.27 \ && 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..c5148cf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,79 +2,90 @@ 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) 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) + 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) + 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 +93,30 @@ 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 DEPENDENCIES apparition @@ -118,4 +131,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' From 05622739e12909667d09a443f6306f65a92c8cba Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 17:29:00 -0600 Subject: [PATCH 02/15] Remove commented directive --- Dockerfile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 23f33fb..7a3d6ae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,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 && \ From 1a19847fba3b0720df1850888674b0ee9799ade8 Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 17:29:20 -0600 Subject: [PATCH 03/15] Remove Circle CI config --- .circleci/config.yml | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 .circleci/config.yml 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 From d3006929204dc8b49e45be8a04fa3a8e89c7a549 Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 17:35:58 -0600 Subject: [PATCH 04/15] Add tests workflow --- .github/workflows/tests.yml | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..3a532a2 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,40 @@ +name: CI + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + + services: + docker: + image: docker:19.03.12 + options: >- + --privileged + --network host + + 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 + run: | + sudo apt-get update + sudo apt-get install -y docker.io docker-compose + + - name: Build Docker image + run: docker-compose build + + - name: Run Rake tasks + run: rake From b9598161424d359ddbba1481cc32e6d359b7be37 Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 17:41:41 -0600 Subject: [PATCH 05/15] Update to latest possible bundler --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7a3d6ae..ca63ecd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,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 -v 2.3.27 \ +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) From 7e8d1fe31738d6ac8907b1f7b04360ca0c6ee742 Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 17:43:35 -0600 Subject: [PATCH 06/15] Rename, remove unsupported option --- .github/workflows/tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3a532a2..ecd44c3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,4 +1,4 @@ -name: CI +name: Test Suite on: push: @@ -17,7 +17,6 @@ jobs: image: docker:19.03.12 options: >- --privileged - --network host steps: - name: Checkout code From 7776c9ab5f927d0f01ff56aa17e1eae16a794983 Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 17:45:56 -0600 Subject: [PATCH 07/15] Try another iteration gor GH actions --- .github/workflows/tests.yml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ecd44c3..721db4c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,21 +3,15 @@ name: Test Suite on: push: branches: - - master + - main pull_request: branches: - - master + - main jobs: build: runs-on: ubuntu-latest - services: - docker: - image: docker:19.03.12 - options: >- - --privileged - steps: - name: Checkout code uses: actions/checkout@v2 @@ -27,8 +21,10 @@ jobs: with: ruby-version: 2.7 - - name: Install Docker + - name: Install Docker and Docker Compose run: | + # Remove conflicting containerd package if it exists + sudo apt-get remove -y containerd sudo apt-get update sudo apt-get install -y docker.io docker-compose From d20d94bf5ee0c75c8d0f024bfcb594b536db7f4c Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 17:46:37 -0600 Subject: [PATCH 08/15] Update master branch ref --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 721db4c..3fc0513 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,10 +3,10 @@ name: Test Suite on: push: branches: - - main + - master pull_request: branches: - - main + - master jobs: build: From 8e58ff18aee15440fe78f4794c9421aa8a116e48 Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 17:47:59 -0600 Subject: [PATCH 09/15] Try another docker install command --- .github/workflows/tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3fc0513..70fa3ad 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,10 +23,10 @@ jobs: - name: Install Docker and Docker Compose run: | - # Remove conflicting containerd package if it exists - sudo apt-get remove -y containerd - sudo apt-get update - sudo apt-get install -y docker.io docker-compose + # 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 From 13b5ef896d60abd94485f765510346cd79298de9 Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 17:54:30 -0600 Subject: [PATCH 10/15] Add x86_64 linux platform support --- Gemfile.lock | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Gemfile.lock b/Gemfile.lock index c5148cf..485377a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -35,6 +35,7 @@ GEM 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.34.0) @@ -43,6 +44,9 @@ GEM 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) @@ -52,6 +56,8 @@ GEM 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) @@ -117,6 +123,7 @@ GEM PLATFORMS aarch64-linux arm64-darwin-24 + x86_64-linux DEPENDENCIES apparition From 56d92e646a8ca09b3c9a949cb5f69f8e6e4da882 Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 18:01:25 -0600 Subject: [PATCH 11/15] Add bundle to ruby env --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 70fa3ad..db92868 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,6 +20,7 @@ jobs: uses: ruby/setup-ruby@v1 with: ruby-version: 2.7 + run: gem install bundler -v 2.4.22 && bundle install - name: Install Docker and Docker Compose run: | From bece0c99cac9b698547cfe943c9cd31c7564b4aa Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 18:02:32 -0600 Subject: [PATCH 12/15] Fix --- .github/workflows/tests.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index db92868..6af98bb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,6 @@ jobs: uses: ruby/setup-ruby@v1 with: ruby-version: 2.7 - run: gem install bundler -v 2.4.22 && bundle install - name: Install Docker and Docker Compose run: | @@ -32,5 +31,8 @@ jobs: - name: Build Docker image run: docker-compose build - - name: Run Rake tasks + - name: Install gemset + run: gem install bundler -v 2.4.22 && bundle install + + - name: Run tests run: rake From 8ea9f4c97b3258b6db5e456dedda21bb1d2491a9 Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 18:03:23 -0600 Subject: [PATCH 13/15] Remove bundler install --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6af98bb..51a16bb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -32,7 +32,7 @@ jobs: run: docker-compose build - name: Install gemset - run: gem install bundler -v 2.4.22 && bundle install + run: bundle install - name: Run tests run: rake From ef08c7a1bbef671db69e7a841d7f7a3b5a6c94ad Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 18:06:27 -0600 Subject: [PATCH 14/15] Keep dirs --- spec/pb-js-grpc-web-text/.keep | 0 spec/pb-js-grpc-web/.keep | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 spec/pb-js-grpc-web-text/.keep create mode 100644 spec/pb-js-grpc-web/.keep 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 From ccc7fed4460a1f002e652b75a4be58e0444bcfce Mon Sep 17 00:00:00 2001 From: Joseph Sak Date: Thu, 10 Apr 2025 18:12:42 -0600 Subject: [PATCH 15/15] Only need to install rake, rspec --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 51a16bb..7388532 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -31,8 +31,8 @@ jobs: - name: Build Docker image run: docker-compose build - - name: Install gemset - run: bundle install + - name: Install environment support + run: gem install rake rspec - name: Run tests run: rake