Add compile flags config and tighten CLI flag handling #2868
Workflow file for this run
This file contains hidden or 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 specs | |
| on: | |
| push: | |
| branches: | |
| - "main" | |
| pull_request: | |
| paths: | |
| - "lib/install/**" | |
| - "lib/generators/**" | |
| - "spec/generator_specs/**" | |
| - "**.rb" | |
| - "**.gemspec" | |
| - "Gemfile" | |
| - "gemfiles/**" | |
| - "package.json" | |
| - "**.js" | |
| - "**.ts" | |
| - ".github/workflows/generator.yml" | |
| workflow_dispatch: | |
| concurrency: | |
| # Pushing new changes to a branch will cancel any in-progress CI runs | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| setup-matrix: | |
| name: Set up generator matrix | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.set-matrix.outputs.matrix }} | |
| steps: | |
| - name: Select matrix (minimal on PRs, full on main / workflow_dispatch) | |
| id: set-matrix | |
| run: | | |
| if [ "${{ github.event_name }}" = "pull_request" ]; then | |
| # Fast PR feedback: only the newest and oldest supported combos. | |
| # The full matrix below still runs on `main` pushes and via workflow_dispatch. | |
| echo 'matrix={"include":[{"os":"ubuntu-latest","ruby":"3.4","gemfile":"gemfiles/Gemfile-rails.8.0.x"},{"os":"ubuntu-latest","ruby":"2.7","gemfile":"gemfiles/Gemfile-rails.7.0.x"}]}' >> "$GITHUB_OUTPUT" | |
| else | |
| echo 'matrix={"os":["ubuntu-latest"],"ruby":["2.7","3.0","3.1","3.2","3.3","3.4"],"gemfile":["gemfiles/Gemfile-rails.7.0.x","gemfiles/Gemfile-rails.7.1.x","gemfiles/Gemfile-rails.7.2.x","gemfiles/Gemfile-rails.8.0.x"],"exclude":[{"ruby":"2.7","gemfile":"gemfiles/Gemfile-rails.7.2.x"},{"ruby":"2.7","gemfile":"gemfiles/Gemfile-rails.8.0.x"},{"ruby":"3.0","gemfile":"gemfiles/Gemfile-rails.7.2.x"},{"ruby":"3.0","gemfile":"gemfiles/Gemfile-rails.8.0.x"},{"ruby":"3.1","gemfile":"gemfiles/Gemfile-rails.8.0.x"},{"ruby":"3.4","gemfile":"gemfiles/Gemfile-rails.7.0.x"}]}' >> "$GITHUB_OUTPUT" | |
| fi | |
| test: | |
| name: Generator specs | |
| needs: setup-matrix | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }} | |
| env: | |
| BUNDLE_GEMFILE: ${{ matrix.gemfile }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ matrix.ruby }} | |
| rubygems: latest | |
| bundler-cache: true | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.19.x" | |
| cache: yarn | |
| - name: Install Node dependencies | |
| run: yarn install --frozen-lockfile --production=false | |
| - name: Build TypeScript | |
| run: yarn build | |
| - name: Pack npm package for testing | |
| run: | | |
| TARBALL=$(npm pack) | |
| echo "SHAKAPACKER_NPM_PACKAGE=$(pwd)/$TARBALL" >> $GITHUB_ENV | |
| echo "Created package: $TARBALL" | |
| - run: bundle exec rake run_spec:generator |