Add CI workflow with Docker validation, shell linting, and Python checks#3
Add CI workflow with Docker validation, shell linting, and Python checks#3Copilot wants to merge 6 commits into
Conversation
- Added CI workflow for Docker build validation - Added shell script linting with shellcheck - Added Python validation - Workflow triggers on push and pull requests to master/main branches Co-authored-by: igor-holt <125706350+igor-holt@users.noreply.github.com>
Co-authored-by: igor-holt <125706350+igor-holt@users.noreply.github.com>
- Fixed invalid flake8 error code F63 - Added pip caching to improve workflow performance - Updated Python syntax check to validate all .py files Co-authored-by: igor-holt <125706350+igor-holt@users.noreply.github.com>
Set permissions to contents: read to follow security best practices Co-authored-by: igor-holt <125706350+igor-holt@users.noreply.github.com>
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ❌ Deployment failed View logs |
q-mem-stack | b5cce8d | Jan 24 2026, 10:24 PM |
There was a problem hiding this comment.
Pull request overview
Adds a GitHub Actions CI workflow to validate repository infrastructure artifacts (Docker, shell scripts, and Python), and updates ignore rules for Python cache output.
Changes:
- Introduces a CI workflow to validate
docker-compose.ymland build both Docker images. - Adds ShellCheck linting across all
.shscripts. - Adds Python validation via flake8 (fatal-only) and
py_compile. - Updates
.gitignoreto exclude Python__pycache__directories.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
.gitignore |
Ignores Python bytecode cache directories. |
.github/workflows/ci.yml |
Implements CI jobs for Docker validation, shell linting, and Python checks. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: Set up Docker Buildx | ||
| uses: docker/setup-buildx-action@v3 | ||
|
|
||
| - name: Validate docker-compose.yml | ||
| run: docker compose config | ||
|
|
||
| - name: Build main Dockerfile | ||
| run: docker build -f Dockerfile . |
There was a problem hiding this comment.
The workflow sets up Docker Buildx but then uses docker build (not docker buildx build). This step is effectively unused and adds time/complexity. Either remove the Buildx setup step or switch the build commands to docker buildx build if Buildx features/caching are desired.
| - name: Set up Python | ||
| uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: '3.x' | ||
| cache: 'pip' |
There was a problem hiding this comment.
python-version: '3.x' makes CI run on whatever the latest Python 3 release is on GitHub runners, which can introduce unexpected breakages over time. Since the repo’s runtime image is pinned to Python 3.11 (Dockerfile:1), consider pinning CI to the same minor version (e.g., 3.11) to keep validation aligned and reproducible.
| with: | ||
| python-version: '3.x' | ||
| cache: 'pip' | ||
|
|
||
| - name: Install dependencies | ||
| run: | | ||
| python -m pip install --upgrade pip | ||
| pip install flake8 |
There was a problem hiding this comment.
Pip caching is enabled, but the repo doesn’t include a standard dependency lock/file (e.g., requirements.txt / pyproject.toml). With only flake8 being installed here, caching likely won’t provide much benefit and may create a less meaningful cache key. Consider removing cache: 'pip' or adding an explicit cache-dependency-path that exists in this repo.
Implements comprehensive CI validation for the q-mem-stack repository infrastructure.
Changes
.shfiles to catch common issues.pyfilesConfiguration
Triggers on push/PR to master/main branches and manual dispatch.
Also updates
.gitignoreto exclude Python cache directories.Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.