Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
1600f6d
chore(config): apply the rails 7.1 config changes
linusfromscratch May 20, 2026
723cca9
fix: restore test suite compatibility after Rails 7.1.6 upgrade
linusfromscratch May 20, 2026
d270289
build(deps): pin connection_pool until rails is compatible
linusfromscratch May 20, 2026
1041540
chore(config): add autoload paths to the load path for now
linusfromscratch May 20, 2026
50b4c35
test(crud): stop assigning to the readonly item_type attribute
linusfromscratch May 22, 2026
e8aa7e8
fix(forms): reload records in splitable#save to restore dirty tracking
linusfromscratch May 22, 2026
83c8631
test(cuprite): remove unsupported fill_options from driver calls
linusfromscratch May 22, 2026
301b7ab
test: tidy the minitest reporter setup
linusfromscratch May 22, 2026
178b020
fix(config): require_relative error_tracker, drop the autoload override
linusfromscratch May 22, 2026
c9c36c6
fix(config): switch key_generator_hash_digest_class to sha256
linusfromscratch May 22, 2026
d59b3ab
chore(config): remove new_framework_defaults_7_1.rb
linusfromscratch May 22, 2026
72dc3f1
fix(config): move secret_key_base out of the deprecated secrets.yml
linusfromscratch May 22, 2026
fef5061
build(rails): upgrade from 7.1 to 7.2
linusfromscratch May 22, 2026
af2f8eb
build(rails): upgrade from 7.2 to 8.0
linusfromscratch May 22, 2026
5c83e5a
test: use capybara minitest assertions so assertions are counted
linusfromscratch May 22, 2026
570c901
fix(test): release the AR connection in teardown to stop pool exhaustion
linusfromscratch May 28, 2026
37afa32
build(rails): upgrade from 8.0 to 8.1 (65394)
linusfromscratch May 28, 2026
c7c4af2
test(orders): replace sleep with a capybara wait in the modal test
linusfromscratch May 28, 2026
946500a
build(ruby): upgrade to 3.3, add missing gems (65394)
linusfromscratch Jun 4, 2026
7ae60b3
build(ruby): upgrade to 3.4 (65394)
linusfromscratch Jun 4, 2026
b004347
build(ruby): upgrade to 4.0 (65394)
linusfromscratch Jun 4, 2026
e8dd89b
fix: restore order_plannings route, respect its authorization skip
Kagemaru Jun 5, 2026
c795b72
fix: guard handle_remember_params for controllers without :index
Kagemaru Jun 5, 2026
6643015
chore: bump config.load_defaults to 8.1
Kagemaru Jun 18, 2026
0991b42
build: replace abandoned fast_jsonapi with jsonapi-serializer
Kagemaru Jul 20, 2026
5de121b
chore: rework Dockerfile for layer caching and a smaller image
Kagemaru Jul 24, 2026
a90bc8a
fix(api): guard relationships_to_serialize, rescue the real error
Kagemaru Jul 20, 2026
0ea4820
chore: regenerate schema.rb with the Rails 8.1 dumper
Kagemaru Jul 27, 2026
fee62b4
fix: audit belongs_to associations, add employee_id NOT NULL migration
Kagemaru Jul 27, 2026
c10b487
test: stop integration tests racing CSS animations
Kagemaru Jul 27, 2026
c944ec5
fix: block untrusted vips input (CVE-2026-66066)
Kagemaru Aug 3, 2026
8774ed2
test: add parallel_tests, enable raise_on_missing_callback_actions
Kagemaru Aug 3, 2026
5cece3b
fix: correct remember_params guard to check action_name at request time
Kagemaru Aug 3, 2026
46a45e5
feat: freeze Bootstrap 3 into a static CSS file (Phase 1)
Kagemaru Aug 3, 2026
04750b1
refactor: replace raw SQL in Expense.reimbursement_months/payment_years
Kagemaru Aug 3, 2026
2add289
feat: JavaScript to jsbundling + esbuild (Phase 2)
Kagemaru Aug 10, 2026
dd3b753
docs: add the asset-pipeline upgrade plan
Kagemaru Aug 10, 2026
c79985c
fix: drain in-flight requests before DatabaseCleaner truncates tables
Kagemaru Aug 11, 2026
58e9689
docs: document the orphaned-headless-Chrome hazard
Kagemaru Aug 11, 2026
8f674be
fix: guard expenses.js against a missing receipt input
Kagemaru Aug 11, 2026
2feeda3
fix: lograge dropping events when headers payload is nil
Kagemaru Aug 13, 2026
3ddc3bf
ci: switch docker build cache to the registry backend
Kagemaru Aug 13, 2026
4b0ac4a
fix: restore libvips42 to docker BUILD_PACKAGES
Kagemaru Aug 13, 2026
7d8967d
feat: dartsass-rails and Sprockets to Propshaft (Phase 3)
Kagemaru Aug 13, 2026
6f5b1f2
docs: record Phase 3 findings in upgrade.html
Kagemaru Aug 13, 2026
eb00b9c
docs: note the CSS/JS baseline moved out of /tmp
Kagemaru Aug 13, 2026
55fd091
docs: add a visual timeline to upgrade.html
Kagemaru Aug 13, 2026
0e1e8f3
docs: renumber upgrade.html sections to match the ToC
Kagemaru Aug 13, 2026
ff647ca
docs: add hover tooltip + click-to-copy hash on timeline dots
Kagemaru Aug 13, 2026
79a2b98
docs: note what the timeline dots do
Kagemaru Aug 14, 2026
a9295f1
docs: show full weekday+date on timeline instead of MM-DD
Kagemaru Aug 14, 2026
db2b887
feat: Tailwind in, layered, Preflight on (Phase 4)
Kagemaru Aug 14, 2026
1f920a3
docs: record Phase 4 findings in upgrade.html
Kagemaru Aug 14, 2026
2ff7fe2
fix: upgrade.html formatting
Kagemaru Aug 14, 2026
e2809de
feat: shim type & utilities, shrink bootstrap-frozen.css (Phase 5.1)
Kagemaru Aug 14, 2026
fd3a5d5
docs: record Phase 5.1 findings in upgrade.html
Kagemaru Aug 14, 2026
61a38ac
fix: delete the dead print layout and its stylesheet entrypoint
Kagemaru Aug 14, 2026
2b924de
docs: record the dead print-layout finding in upgrade.html
Kagemaru Aug 14, 2026
840c2ac
docs: evaluate daisyUI as a possible next step
Kagemaru Aug 14, 2026
0db8336
docs: add the daisyUI evaluation to the timeline
Kagemaru Aug 14, 2026
f670a56
docs: take the daisyUI fork as (a) — finish the shim by hand
Kagemaru Aug 21, 2026
d81d522
docs: point the D5 timeline dot at its commit
Kagemaru Aug 21, 2026
f95968e
feat(scripts): add the department export script
Kagemaru Aug 24, 2026
41fc59d
refactor(assets): shim the grid, drop it from bootstrap-frozen.css
Kagemaru Aug 24, 2026
148991b
docs: record phase 5.2 and correct the grid catalogue it disproved
Kagemaru Aug 24, 2026
dbe2eeb
docs: put the 5.2 section inside the phase-5 box
Kagemaru Aug 24, 2026
422c337
refactor(assets): shim the tables, drop them from bootstrap-frozen.css
Kagemaru Aug 24, 2026
ce80701
docs: record phase 5.3 and correct two claims it disproved
Kagemaru Aug 24, 2026
0bff3fc
refactor(assets): shim the buttons, drop them from bootstrap-frozen.css
Kagemaru Aug 24, 2026
46b235d
docs: record phase 5.4 and split §6.5's conflated counts
Kagemaru Aug 24, 2026
0b6374f
refactor(assets): shim forms, drop from bootstrap-frozen.css
Kagemaru Sep 18, 2026
d1764fc
refactor(assets): shim nav/navbar/breadcrumb/pagination
Kagemaru Sep 18, 2026
6f19cbc
refactor(assets): shim alerts/labels/panels/progress/list-group
Kagemaru Sep 18, 2026
69c28aa
refactor(assets): shim modal/tooltip/fade verbatim
Kagemaru Sep 18, 2026
01eb8ea
refactor(assets): delete bootstrap-frozen.css and bootstrap layer
Kagemaru Sep 18, 2026
4f27b9c
docs: record phases 5.5-5.8 and 6 in upgrade.html
Kagemaru Sep 18, 2026
afca761
chore(commits): adopt Conventional Commits, enforce via overcommit
Kagemaru Sep 18, 2026
bc338f0
chore(commits): add .gitmessage template, wire it via bin/setup
Kagemaru Sep 18, 2026
6cc9ca2
ci(commit-lint): check Conventional Commits on pull requests
Kagemaru Sep 18, 2026
f85f461
refactor(assets): shrink _bootstrap_variables.scss to live variables
Kagemaru Sep 25, 2026
ccf5df1
docs: close out phases 4-6, mark daisyUI rejected
Kagemaru Sep 25, 2026
80a8ebd
style(config): single-quote secret_key_base in development.rb
Kagemaru Sep 25, 2026
cfa4162
fix(assets): restore Bootstrap defaults Preflight and the shim dropped
Kagemaru Sep 25, 2026
96b3d23
docs: add before/after screenshots, record regressions found
Kagemaru Sep 25, 2026
06c4828
fix(a11y): raise contrast, name landmarks and icon-only links
Kagemaru Sep 25, 2026
eb75175
fix(a11y): darken the palette, replace two invalid ARIA roles
Kagemaru Sep 25, 2026
645f820
style(js): make standard pass on the decaffeinated sources
Kagemaru Sep 25, 2026
4dfa63b
docs: record the a11y and lint cleanup as upgrade.html §9
Kagemaru Sep 25, 2026
26a5ba2
build(deps): update all gems, ruby 4.0.7, drop selenium-webdriver
Kagemaru Sep 25, 2026
d14cc70
docs: record the 2026-09-25 dependency refresh
Kagemaru Sep 25, 2026
9520bf5
docs: record the history rewrite and the open MemberTest failure
Kagemaru Sep 26, 2026
5c09a29
docs: record the MemberTest failure as a master-side bug
Kagemaru Sep 26, 2026
f0bff16
fix(ci): qualify buildcache ref with registry host
Kagemaru Sep 28, 2026
653b867
fix(security): resolve brakeman high-confidence warnings
Kagemaru Sep 28, 2026
17d43d7
ci(workflows): make manual build steps selectable
Kagemaru Sep 28, 2026
3e9ab08
style(rubocop): autocorrect offenses and regenerate todo
Kagemaru Sep 28, 2026
c496b47
build(lint): make department export script executable
Kagemaru Sep 28, 2026
1ab8c92
fix(db): use pool instead of max_connections
Kagemaru Sep 28, 2026
a162a96
build(deps): bump bleib to 0.0.17
Kagemaru Sep 28, 2026
cf96497
fix(build): Fix permissions & deleted folders
Kagemaru Sep 29, 2026
e3af964
build(overcommit): move hook linters to optional gem group
Kagemaru Sep 29, 2026
4f78129
build(lint): fix whitespace offenders, swap csslint for stylelint
Kagemaru Sep 29, 2026
dfd35e7
style(rubocop): autocorrect extra spacing offenses
Kagemaru Sep 29, 2026
17b356a
ci: bump github actions to current majors
Kagemaru Sep 29, 2026
c3af233
ci(build): report pushed image tags as annotation and summary
Kagemaru Sep 29, 2026
536016b
ci(lint): add brakeman and actionlint, fix haml-lint reporting
Kagemaru Sep 29, 2026
39093e1
ci(lint): parallelise linters, add reek, rbp, erb_lint, fasterer
Kagemaru Sep 29, 2026
7d72670
ci(lint): warm the bundler cache once in a prepare job
Kagemaru Sep 29, 2026
37e7368
fix(views): drop coffeescript filter from devise links partial
Kagemaru Sep 29, 2026
a10b2e7
fix(sentry): replace deprecated option, repair the release tag
Kagemaru Sep 29, 2026
b21b4eb
build(assets): stop publishing the js source map
Kagemaru Sep 29, 2026
77cddce
docs: record the INT deployment comparison as upgrade.html section 10
Kagemaru Sep 29, 2026
ee53e32
fix(a11y): underline links that sit inside a run of text
Kagemaru Sep 29, 2026
05fa881
build(assets): stop publishing gem assets esbuild replaced
Kagemaru Sep 29, 2026
082c55d
docs: record the image diff, the contrast options and the rewrite
Kagemaru Sep 29, 2026
9b4ca25
test(orders): wait for the datepicker to reformat start_date
Kagemaru Sep 29, 2026
c124913
ci(test): make the test job runnable under act
Kagemaru Sep 29, 2026
8029362
fix(format): keep hour unit on same line as value
Kagemaru Sep 29, 2026
2e8a8f5
fix(a11y): bold text-block links instead of underlining them
Kagemaru Sep 29, 2026
8c2386c
ci(commit-lint): check the 72-character subject cap too
Kagemaru Sep 29, 2026
47ed244
docs: record the planning-test findings and the retry-helper bug
Kagemaru Sep 29, 2026
8a923b6
test(status): use :unprocessable_content, drop the warning filter
Kagemaru Sep 29, 2026
7f48485
test(teardown): guard the request drain on the driver type
Kagemaru Sep 29, 2026
91ed978
build(reek): exclude drain_pending_requests from DuplicateMethodCall
Kagemaru Sep 29, 2026
ecaac7c
test(flaky): retry only the named exception classes
Kagemaru Sep 29, 2026
46ac5a3
docs: record the retry-helper fix and what it exposed
Kagemaru Sep 29, 2026
a64a40e
fix(js): catch failed script updates instead of leaking a rejection
Kagemaru Sep 29, 2026
e7dfbdb
docs: record the unhandled-rejection root cause and its fix
Kagemaru Sep 29, 2026
0f8538f
style(js): drop a leftover debug log from SelectionWatcher
Kagemaru Sep 29, 2026
fd82c84
ci(workflows): grant lint callers checks and pr write
Kagemaru Sep 29, 2026
5435e7d
docs: record the actionlint workflow-call permissions fix
Kagemaru Sep 29, 2026
d8ba770
fix(crm): reset the instance when no crm is configured
Kagemaru Sep 29, 2026
40af60d
docs: record the crm global-state test flake and its fix
Kagemaru Sep 29, 2026
ecf6369
build(overcommit): warn on reek smells outside the diff
Kagemaru Sep 30, 2026
4a87d66
test: drop the dead timeout_safe wrapper
Kagemaru Sep 30, 2026
0d3ebda
docs: record the timeout_safe removal
Kagemaru Sep 30, 2026
73c2b3b
test(reek): clear the smells in the unwrapped test files
Kagemaru Sep 30, 2026
5596c92
docs: drop the scratch flake notes files
Kagemaru Sep 30, 2026
973b97f
ci(test): use the runner's chrome, install one only for act
Kagemaru Sep 30, 2026
f23d55b
ci(test): capture the pages behind the ci-only failures
Kagemaru Sep 30, 2026
070270a
fix(test): point the session store at the configured memcached
Kagemaru Sep 30, 2026
5b96853
docs: record the ci session and drop the failure capture
Kagemaru Sep 30, 2026
6741013
fix(test): stop the planning setup from reloading the board
Kagemaru Sep 30, 2026
46424df
fix(a11y): name the unlabelled selects and blank the spacer alts
Kagemaru Sep 30, 2026
badd85d
docs: record the planning-board flake and the last a11y fixes
Kagemaru Sep 30, 2026
8700f35
docs: record the green ci run for the planning fix
Kagemaru Sep 30, 2026
5d59367
fix(plannings): reject a repetition with nothing to repeat
Kagemaru Sep 30, 2026
e736c21
build(overcommit): run the pre-push suite through bin/rails test
Kagemaru Sep 30, 2026
deacaee
docs: remap rewritten shas, record the 500 fix and the hook change
Kagemaru Sep 30, 2026
5bd91bb
fix(a11y): empty corner cell as td, legend heading as h2
Kagemaru Oct 1, 2026
f619e3a
style(assets): commit the ImageOptim output
Kagemaru Oct 1, 2026
71c2fba
docs: record the INT re-verification as upgrade.html section 12
Kagemaru Oct 1, 2026
1424ecd
chore: merge origin/master into the upgrade branch
Kagemaru Oct 7, 2026
2d38108
docs: add the ruby/rails run, the 02.10 verify and the merge
Kagemaru Oct 7, 2026
8004b90
docs: point the merge dot at the amended sha
Kagemaru Oct 7, 2026
ab86625
docs(contributing): split the body guidance into two bullets
Kagemaru Oct 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
71 changes: 48 additions & 23 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,46 +1,71 @@
# Ignore bundler config.
# Git
.git/
.github/
.gitignore
/git-hooks/

# Log- and tempfiles
/log/*
!/log/.keep
/tmp/*
!/tmp/.keep

# Uploads
/storage/*
!/storage/.keep
public/uploads

# Bundler stuff
/.bundle
bin/bundle

# Ignore the default SQLite database.
# SQLite databases
/db/*.sqlite3
/db/*.sqlite3-journal

# Ignore all logfiles and tempfiles.
/log/*
/tmp/*
!/tmp/.keep
!/log/.keep
# JS stuff
/node_modules
/yarn-error.log

# Docs & .md files
/doc/
*.md
AUTHORS
LICENSE

# Docker
Dockerfile*
docker-compose.yml

# Puma is unhappy without this
!/tmp/pids
/tmp/pids/*
!/tmp/pids/.keep

# Ignore uploaded files in development
/storage/*
!/storage/.keep
# Test files
/test/
/spec/

# Lint/tooling config (only used outside Docker)
.haml-lint.yml
.overcommit.yml
.projections.json
.reek.yml
.rubocop.yml
.rubocop_todo.yml
.tool-versions
.yamllint.yaml

/node_modules
/yarn-error.log

/public/assets
.byebug_history

# Ignore master key for decrypting credentials and more.
/config/master.key

# Ignore public uploads
public/uploads

# Ignore changed bundle binstub
bin/bundle

# Ignore local environment variables file
# Local environment variables
.env.local
.envrc

# Ignore local gems
# Local gems
vendor/bundle/**/

.git/
.github/
49 changes: 47 additions & 2 deletions .github/workflows/build-manual.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: "Manual build without tests"
name: "Manual build"

"on":
workflow_dispatch:
Expand All @@ -24,14 +24,48 @@ name: "Manual build without tests"
- pude-ptime-int
- pude-ptime-prod
default: "pitc-ptime-int"
lint:
description: "Run lint?"
required: true
type: boolean
default: false
test:
description: "Run tests?"
required: true
type: boolean
default: false
build:
description: "Build the image?"
required: true
type: boolean
default: true
push:
description: "Should we push the image to the registry?"
description: "Push the image to the registry?"
required: true
type: boolean
default: true
sbom:
description: "Generate and upload the SBOM?"
required: true
type: boolean
default: false

jobs:
lint:
if: ${{ inputs.lint }}
permissions:
contents: read
checks: write
pull-requests: write
uses: ./.github/workflows/reusable-lint.yaml

test:
if: ${{ inputs.test }}
uses: ./.github/workflows/reusable-test.yaml

build-dispatch:
needs: [lint, test]
if: ${{ inputs.build && !failure() && !cancelled() }}
uses: ./.github/workflows/reusable-build.yaml
with:
environment: ${{ inputs.environment }}
Expand All @@ -40,3 +74,14 @@ jobs:
secrets:
PUZZLE_REGISTRY_USERNAME: ${{ secrets.PUZZLE_REGISTRY_USERNAME }}
PUZZLE_REGISTRY_TOKEN: ${{ secrets.PUZZLE_REGISTRY_TOKEN }}

sbom:
needs: build-dispatch
if: ${{ inputs.sbom && !failure() && !cancelled() }}
uses: ./.github/workflows/reusable-sbom.yaml
with:
project_name: ${{ inputs.project_name }}
secrets:
dependency_track_url: ${{ secrets.DEPTRACK_URL }}
dependency_track_api_key: ${{ secrets.DEPTRACK_API_KEY }}
...
4 changes: 4 additions & 0 deletions .github/workflows/build-on-push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ name: 'Lint, test and image build on push'

jobs:
lint:
permissions:
contents: read
checks: write
pull-requests: write
uses: ./.github/workflows/reusable-lint.yaml

test:
Expand Down
24 changes: 19 additions & 5 deletions .github/workflows/reusable-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,14 @@ jobs:

exit "${exit_code}"

- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
- uses: docker/setup-buildx-action@v4
- uses: docker/login-action@v4
with:
registry: ${{ env.BUILD_REGISTRY }}
username: ${{ secrets.PUZZLE_REGISTRY_USERNAME }}
password: ${{ secrets.PUZZLE_REGISTRY_TOKEN }}
- uses: docker/build-push-action@v4
- uses: docker/build-push-action@v7
id: build
with:
file: Dockerfile
build-args: |
Expand All @@ -82,5 +83,18 @@ jobs:
${{ env.BUILD_REGISTRY_URL }}:latest
${{ env.BUILD_REGISTRY_URL }}:git-${{ github.sha }}
push: ${{ inputs.push }}
cache-from: type=gha
cache-to: type=gha,mode=max
cache-from: type=registry,ref=${{ env.BUILD_REGISTRY_URL }}:buildcache
cache-to: type=registry,ref=${{ env.BUILD_REGISTRY_URL }}:buildcache,mode=max

- name: 'Report image tags'
if: inputs.push
run: |
echo "::notice title=Image pushed::${BUILD_REGISTRY_URL}:latest, ${BUILD_REGISTRY_URL}:git-${{ github.sha }} (digest ${{ steps.build.outputs.digest }})"
{
echo '### Image pushed'
echo
echo '| Tag | Digest |'
echo '| --- | --- |'
echo "| \`${BUILD_REGISTRY_URL}:latest\` | \`${{ steps.build.outputs.digest }}\` |"
echo "| \`${BUILD_REGISTRY_URL}:git-${{ github.sha }}\` | \`${{ steps.build.outputs.digest }}\` |"
} >> "$GITHUB_STEP_SUMMARY"
106 changes: 96 additions & 10 deletions .github/workflows/reusable-lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,37 @@ name: 'Code Style Review'
description: "Ref to checkout"
type: string

permissions:
contents: read
checks: write
pull-requests: write

# The linters live in the optional :overcommit group (see .overcommit.yml). Set
# here so every job shares one setup-ruby bundler cache (BUNDLE_WITH is part of
# its cache key).
env:
BUNDLE_WITH: 'overcommit'

jobs:
lint:
# Warms the bundler cache once; the linter jobs below only restore it.
prepare:
runs-on: 'ubuntu-latest'

steps:
- uses: actions/checkout@v7
with:
ref: ${{ inputs.ref }}

- uses: ruby/setup-ruby@v1
with:
bundler-cache: true

rubocop:
runs-on: 'ubuntu-latest'
needs: prepare

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
with:
ref: ${{ inputs.ref }}

Expand All @@ -28,19 +53,80 @@ jobs:
# reporter: github-pr-review
level: error

- run: 'gem install haml-lint'
brakeman:
runs-on: 'ubuntu-latest'
needs: prepare

steps:
- uses: actions/checkout@v7
with:
ref: ${{ inputs.ref }}

- uses: ruby/setup-ruby@v1
with:
bundler-cache: true

- uses: reviewdog/action-brakeman@v2
with:
brakeman_version: gemfile
level: error

actionlint:
runs-on: 'ubuntu-latest'

steps:
- uses: actions/checkout@v7
with:
ref: ${{ inputs.ref }}

- uses: reviewdog/action-actionlint@v1
with:
level: error

ruby-lint:
runs-on: 'ubuntu-latest'
needs: prepare

strategy:
fail-fast: false
matrix:
include:
- name: 'HAML-Lint'
command: 'bundle exec haml-lint --reporter checkstyle'
format: '-f=checkstyle'
- name: 'Reek'
command: 'bundle exec reek --single-line --no-progress app lib'
# reek indents every smell by two spaces under its file heading
format: '-efm= %f:%l: %m'
- name: 'Rails-Best-Practices'
command: 'bundle exec rails_best_practices --without-color'
format: '-efm=%f:%l - %m'
- name: 'ERB-Lint'
command: 'bundle exec erb_lint --lint-all --format compact'
format: '-efm=%f:%l:%c: %m'
- name: 'Fasterer'
command: 'bundle exec fasterer'
format: '-efm=%f:%l %m'

steps:
- uses: actions/checkout@v7
with:
ref: ${{ inputs.ref }}

- uses: ruby/setup-ruby@v1
with:
bundler-cache: true

- uses: reviewdog/action-setup@v1

- name: 'Run Reviewdog HAML-Lint'
- name: ${{ matrix.name }}
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ github.token }}
run: |
haml-lint |
${{ matrix.command }} |
sed -E 's/\x1B\[[0-9;]*m//g' |
reviewdog \
-efm="%f:%l %m" \
-name="HAML-Lint" \
-reporter=github-pr-review \
-level=error \
-diff="git diff $DIFF_BRANCH"
"${{ matrix.format }}" \
-name="${{ matrix.name }}" \
-reporter=github-pr-review
...
6 changes: 3 additions & 3 deletions .github/workflows/reusable-sbom.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
# ports: [ '11211:11211' ]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
- name: 'Generate SBOM for ruby and npm dependencies'
run: |
npm install -g @cyclonedx/cdxgen
Expand All @@ -60,7 +60,7 @@ jobs:
run: |
docker run \
--rm \
-v $(pwd):/data \
-v "$(pwd):/data" \
cyclonedx/cyclonedx-cli \
merge \
--input-files data/sbom-ruby.json data/sbom-npm.json \
Expand All @@ -79,7 +79,7 @@ jobs:
--form "projectVersion=latest" \
--form "bom=@sbom.xml"

- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
if: always()
with:
name: ${{ inputs.artifact-prefix }}sboms
Expand Down
Loading
Loading