fix: Add fail_level to reviewdog actions#1638
Open
michelabboud wants to merge 34 commits intodockur:masterfrom
Open
fix: Add fail_level to reviewdog actions#1638michelabboud wants to merge 34 commits intodockur:masterfrom
michelabboud wants to merge 34 commits intodockur:masterfrom
Conversation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add compose/ folder with modular compose files for all Windows versions - Organize by category: desktop, legacy, server, tiny - Create data/ subfolders for each version's storage - Update .gitignore to track folder structure via .gitkeep files Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add winctl.sh with 12 commands for managing Windows Docker containers: - start, stop, restart, status, logs, shell, stats - build, rebuild, list, inspect, monitor, check - Interactive menus, prerequisites checking, color output - Support for 22 Windows versions across 4 categories Multi-version compose structure: - Split base.yml into base-modern.yml (8G) and base-legacy.yml (2G) - Add .env.example for configuration - Update all compose files to use env_file - Add unique port mappings per version - Update README with winctl.sh documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use printf '%b' instead of cat heredoc to properly interpret ANSI escape sequences in the show_usage function. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Send menu prompts to stderr so they display in terminal - Read user input from /dev/tty for proper interactive mode - Add status cache to fetch all container states in one Docker call - Handle interactive_select errors properly in all callers Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Cache container statuses in ~/.cache/winctl/status.json - Auto-refresh if cache older than 7 days or data is stale - Add 'refresh' command to force cache refresh - Dramatically faster menus (single Docker call vs 44 calls) - Bump version to 1.1.0 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace echo with printf '%b' in select_category and select_versions to properly interpret ANSI escape sequences. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove base-legacy.yml and base-modern.yml (YAML anchors don't work with include) - Make all compose files self-contained - Add .env.modern (8G RAM, 4 CPU) for Win 10/11, Server 2016+ - Add .env.legacy (2G RAM, 2 CPU) for older systems - Update README and .env.example documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed USERNAME example from Docker to docker (lowercase) - Added link to WINCTL_GUIDE.md for complete documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed post-increment to pre-increment in cmd_monitor ((total_count++)) → ((++total_count)) to avoid set -e exit on ((0)) - Added invalidate_cache for accurate real-time status updates Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed restart policy from unless-stopped to on-failure
so Windows shutdown stops the container instead of restarting
- Added RESTART_POLICY env variable to .env.modern and .env.legacy
- Compose files use ${RESTART_POLICY:-on-failure} for flexibility
- Updated WINCTL_GUIDE.md with restart policy documentation
- Updated readme.md with RESTART_POLICY setting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ./winctl.sh stop all finds and stops all running containers - Updated help, WINCTL_GUIDE.md, and readme.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed color definitions from '\033[...]' to $'\033[...]' (actual escape bytes instead of literal strings) - Replaced all display echo -e/echo -n/echo with printf - Kept echo only for function return values and JSON output - Fixes ANSI escape codes showing as raw text in list/inspect/monitor Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Auto-detect machine architecture via uname and use the correct Docker image (dockurr/windows for x86, dockurr/windows-arm for ARM64). Block unsupported versions on ARM with a clear error message, and show [x86 only] tags in the list command. Compose files now use a configurable WINDOWS_IMAGE variable with a default fallback. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…tions All reviewdog actions in review.yml now use fail_level: error instead of the deprecated fail_on_error parameter. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds missing `---` document start to satisfy yamllint. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Cache downloaded ISOs so new instances of the same Windows version skip the 3-6 GB download. Adds `winctl cache` subcommands (save/list/rm/flush) and auto-restores cached ISOs when creating new instances with --new. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The container marks processed ISOs with byte 0x16 at offset 0. Restoring a cached ISO with this byte into an empty data directory caused the container to skip installation and try to boot a nonexistent disk, dropping into a UEFI shell. Now resets byte 0 to 0x00 after copying so the container re-processes the ISO (driver injection, answer file, etc.) without re-downloading it. Also adds cache auto-restore to cmd_start() for base versions, not just cmd_new() instances. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Contributor
|
Thanks! I see |
The data directories contain .gitkeep files, so the empty-directory check (ls -A) always returned non-empty and cache restore never triggered. Now checks for *.iso files specifically, which is the actual condition that determines whether a download is needed. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add AUTO_CACHE=Y/N setting in .env to auto-cache ISOs on stop - Fix cache restore to copy metadata files (windows.base, windows.ver, windows.mode, windows.type, windows.args) alongside ISOs so the container recognizes them as already processed and skips re-download - Refactor show_usage() into topic-based help with interactive menu (commands, instances, cache, examples, config) and aligned columns - Fix clean --data to unregister instances and remove compose files - Update WINCTL_GUIDE.md and readme.md with all changes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The container's genisoimage rebuilds ISOs with a duplicate boot catalog
entry that 7z cannot re-extract ("Break signaled"). This caused cache
restore to fail for new instances.
- Add `cache download <version>` command to download original ISOs
directly using the container's download logic
- Add `_is_rebuilt_iso()` helper to detect rebuilt ISOs (magic byte 0x16)
- Skip rebuilt ISOs in `cache save` and `auto_cache_save` with warning
- Remove magic byte manipulation from restore paths (originals work as-is)
- Update WINCTL_GUIDE.md and readme.md with new cache workflow
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add fail_level: error to the 5 reviewdog actions that support it (misspell, hadolint, yamllint, actionlint, shellcheck). For shfmt, which hasn't added fail_level support yet, use fail_on_error: true. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
292c723 to
a691818
Compare
Author
|
Good catch — I've updated the PR:
The |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
fail_level: errorto the 5 reviewdog actions that support it (misspell, hadolint, yamllint, actionlint, shellcheck)fail_on_error: "true"foraction-shfmtwhich hasn't addedfail_levelsupport yetContext
The
fail_on_errorinput was never explicitly set in this workflow — the deprecation warnings (Input 'fail_on_error' has been deprecated) come from the actions' internalaction.ymldefinitions, which resolve the deprecated input to its default value during every run.5 of the 6 reviewdog actions have migrated to support
fail_levelas the replacement. The exception isaction-shfmt, which still only hasfail_on_error(not yet deprecated in that action). Passingfail_levelto shfmt causes a GitHub warning about an unexpected input, sofail_on_error: "true"is used there instead.Affected steps
reviewdog/action-misspell@v1fail_level: errorreviewdog/action-hadolint@v1fail_level: errorreviewdog/action-yamllint@v1fail_level: errorreviewdog/action-actionlint@v1fail_level: errorreviewdog/action-shfmt@v1fail_on_error: "true"reviewdog/action-shellcheck@v1fail_level: errorTest plan
actionlintpasses locallyUnexpected inputwarnings🤖 Generated with Claude Code