[WIP] Add support for RSC #302
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Generator tests | |
on: | |
push: | |
branches: | |
- 'master' | |
pull_request: | |
jobs: | |
examples: | |
env: | |
SKIP_YARN_COREPACK_CHECK: 0 | |
strategy: | |
fail-fast: false | |
matrix: | |
versions: ['oldest', 'newest'] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Get changed files | |
id: changed-files | |
uses: tj-actions/changed-files@v44 | |
with: | |
files: | | |
lib/generators/** | |
rakelib/example_type.rb | |
rakelib/example_config.yml | |
rakelib/examples.rake | |
rakelib/run_rspec.rake | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.versions == 'oldest' && '3.0' || '3.3' }} | |
bundler: 2.5.9 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Print system information | |
run: | | |
echo "Linux release: "; cat /etc/issue | |
echo "Current user: "; whoami | |
echo "Current directory: "; pwd | |
echo "Ruby version: "; ruby -v | |
echo "Node version: "; node -v | |
echo "Yarn version: "; yarn --version | |
echo "Bundler version: "; bundle --version | |
- name: run conversion script to support shakapacker v6 | |
if: matrix.versions == 'oldest' | |
run: script/convert | |
- name: Save root node_modules to cache | |
uses: actions/cache@v4 | |
with: | |
path: node_modules | |
key: v5-package-node-modules-cache-${{ hashFiles('yarn.lock') }} | |
- name: Save root ruby gems to cache | |
uses: actions/cache@v4 | |
with: | |
path: vendor/bundle | |
key: package-app-gem-cache-${{ hashFiles('react_on_rails.gemspec') }}-${{ hashFiles('Gemfile.development_dependencies') }}-${{ matrix.versions }} | |
- id: get-sha | |
run: echo "::set-output name=sha::$(git rev-parse HEAD)" | |
- name: Install Node modules with Yarn for renderer package | |
run: | | |
yarn install --no-progress --no-emoji | |
sudo yarn global add yalc | |
- name: yalc publish for react-on-rails | |
run: yalc publish | |
- name: Install Ruby Gems for package | |
run: bundle lock --add-platform 'x86_64-linux' && bundle check --path=vendor/bundle || bundle _2.5.9_ install --path=vendor/bundle --jobs=4 --retry=3 | |
- name: Ensure minimum required Chrome version | |
run: | | |
echo -e "Already installed $(google-chrome --version)\n" | |
MINIMUM_REQUIRED_CHROME_VERSION=75 | |
INSTALLED_CHROME_MAJOR_VERSION="$(google-chrome --version | tr ' .' '\t' | cut -f3)" | |
if [[ $INSTALLED_CHROME_MAJOR_VERSION < $MINIMUM_REQUIRED_CHROME_VERSION ]]; then | |
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - | |
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' | |
sudo apt-get update | |
sudo apt-get install google-chrome-stable | |
echo -e "\nInstalled $(google-chrome --version)" | |
fi | |
- name: Increase the amount of inotify watchers | |
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p | |
- name: Main CI | |
if: steps.changed-files.outputs.any_changed == 'true' | |
run: bundle exec rake run_rspec:${{ matrix.versions == 'oldest' && 'web' || 'shaka' }}packer_examples | |
- name: Store test results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: main-rspec-${{ github.run_id }}-${{ github.job }}-${{ matrix.versions }} | |
path: ~/rspec |