prepare v6.4.0 for release #6981
Workflow file for this run
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: Continuous Integration | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
schedule: | |
- cron: '0 2 * * *' | |
jobs: | |
node-test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: .nvmrc | |
- uses: bahmutov/npm-install@v1 | |
- run: npm run lint | |
- run: npm test | |
engine-specs: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
# Active Ruby versions (https://endoflife.date/ruby) | |
ruby_version: ['3.1', '3.2', '3.3'] | |
# Active Rails versions (https://endoflife.date/rails) | |
rails_version: ['~> 7.0.0', '~> 7.1.0', '~> 7.2.0', '~> 8.0.0'] | |
# Exclude certain ruby and rails combinations | |
exclude: | |
# Rails 8 supports ruby 3.2+ | |
- ruby_version: '3.1' | |
rails_version: '~> 8.0.0' | |
env: | |
RAILS_VERSION: ${{ matrix.rails_version }} | |
defaults: | |
run: | |
working-directory: engine | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby_version }} | |
working-directory: engine | |
- run: | | |
bundle config path vendor/bundle | |
bundle update | |
bundle install --jobs 4 --retry 3 | |
- run: bundle exec rake spec | |
engine-lint: | |
needs: engine-specs | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: engine | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
ruby-version: '3.3.5' | |
working-directory: engine | |
- run: bundle exec rubocop --format progress --format github | |
- run: bundle exec erblint --lint-all | |
demo-app: | |
runs-on: ubuntu-latest | |
env: | |
RAILS_ENV: test | |
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: .nvmrc | |
# We link the @citizensadvice/design-system package | |
# from the root but we only build the lib/ directory | |
# when we publish to npm, so we need to build it first. | |
- uses: bahmutov/npm-install@v1 | |
- run: npm run build | |
# Setup demo app | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: '3.3.5' | |
bundler-cache: true | |
working-directory: demo | |
# Cache cypress binary | |
- uses: actions/cache@v4 | |
with: | |
path: /home/runner/.cache/Cypress | |
key: cypress-binary-${{ hashFiles('package-lock.json') }} | |
# Npm install | |
- uses: bahmutov/npm-install@v1 | |
with: | |
working-directory: demo | |
# Run rubocop against demo app code | |
- run: bundle exec rubocop --format progress --format github | |
working-directory: demo | |
# Run asset build | |
- run: ./bin/rails assets:precompile | |
working-directory: demo | |
# Run cypress tests | |
- run: ./bin/rails cypress:run | |
working-directory: demo | |
env: | |
CYPRESS_RAILS_CYPRESS_OPTS: '--browser chrome' | |
# Archive test screenshots | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: cypress-screenshots | |
path: demo/cypress/screenshots | |
if: ${{ failure() }} | |
demo-app-backstop: | |
runs-on: ubuntu-latest | |
env: | |
RAILS_ENV: test | |
CYPRESS_INSTALL_BINARY: 0 | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: .nvmrc | |
# We link the @citizensadvice/design-system package | |
# from the root but we only build the lib/ directory | |
# when we publish to npm, so we need to build it first. | |
- uses: bahmutov/npm-install@v1 | |
- run: npm run build | |
# Setup demo app | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: '3.3.5' | |
bundler-cache: true | |
working-directory: demo | |
- uses: bahmutov/npm-install@v1 | |
with: | |
working-directory: demo | |
- run: npm run backstop:ci | |
working-directory: demo | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: backstop-report | |
path: | | |
demo/visual-regression/backstop_data/html_report | |
demo/visual-regression/backstop_data/bitmaps_reference | |
demo/visual-regression/backstop_data/bitmaps_test | |
retention-days: 3 | |
# Runs a build of the docs website as a smoke test | |
# to check there's no build failures | |
# This is in addition to any builds run when adding the | |
# "docs preview" label to a pull request. | |
docs-build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: .nvmrc | |
# We link the @citizensadvice/design-system package | |
# from the root but we only build the lib/ directory | |
# when we publish to npm, so we need to build it first. | |
- uses: bahmutov/npm-install@v1 | |
- run: npm run build | |
# Setup docs site | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: '3.3.5' | |
bundler-cache: true | |
working-directory: design-system-docs | |
# Install dependencies | |
- uses: bahmutov/npm-install@v1 | |
with: | |
working-directory: design-system-docs | |
# Run rubocop against docs code | |
- run: bundle exec rubocop --format progress --format github | |
working-directory: design-system-docs | |
# Run a production build to confirm that assets compile correctly | |
- run: ./bin/bridgetown deploy | |
working-directory: design-system-docs |