feat: complete CI/CD pipeline with lint enforcement, Docker coverage for all components, and Go CodeQL analysis#18
Conversation
… CLI, and Go CodeQL Agent-Logs-Url: https://github.com/MaximumTrainer/OpenDataMask/sessions/cda54cba-2e50-42b1-a722-9b24d568c178 Co-authored-by: MaximumTrainer <1376575+MaximumTrainer@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds a full CI/CD baseline for a 3-component monorepo (Kotlin/Spring backend, Vue frontend, Go CLI), including enforced linting, Docker builds for all components, and CodeQL analysis (now including Go).
Changes:
- Enforced frontend linting by adding ESLint + config and removing the previous lint “pass-through”.
- Expanded GitHub Actions: CI uploads JaCoCo artifacts, Docker workflow builds all 3 images (PR builds without push; push-to-main publishes), and CodeQL now analyzes Go.
- Renamed and replaced the old
Modal.vueusage with a new multi-wordAppModal.vueacross the affected views.
Reviewed changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
frontend/src/views/WorkspacesView.vue |
Swaps modal usage to AppModal to satisfy Vue lint rules. |
frontend/src/views/TablesView.vue |
Swaps modal usage to AppModal for table/column modals. |
frontend/src/views/JobsView.vue |
Swaps modal usage to AppModal for job creation modal. |
frontend/src/views/ConnectionsView.vue |
Swaps modal usage to AppModal for connection create/edit modal. |
frontend/src/components/AppModal.vue |
Introduces the new modal component used across views. |
frontend/package.json |
Adds ESLint-related devDependencies and updates the lint script to be non-fixing. |
frontend/package-lock.json |
Locks new ESLint dependency tree. |
frontend/.eslintrc.cjs |
Adds ESLint configuration for Vue 3 + TypeScript. |
.github/workflows/ci.yml |
Uses --no-daemon, uploads JaCoCo report artifacts, and enforces frontend lint failures. |
.github/workflows/docker.yml |
Adds PR-triggered build-only verification, conditions pushes on push, and builds/pushes the CLI image. |
.github/workflows/codeql.yml |
Adds Go CodeQL analysis job and uses --no-daemon for Gradle build. |
Files not reviewed (1)
- frontend/package-lock.json: Language not supported
Comments suppressed due to low confidence (1)
.github/workflows/docker.yml:16
- This workflow runs on
pull_requestbut grantspackages: writefor the entire job. Consider splitting into separate jobs (PR build-only withpackages: reador default permissions, and push-to-main withpackages: write) to minimize token privileges when building untrusted PR code.
name: Build and Push Docker Images
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
frontend/src/views/JobsView.vue
Outdated
| @@ -1,7 +1,7 @@ | |||
| <script setup lang="ts"> | |||
| import { ref, onMounted, computed } from 'vue' | |||
There was a problem hiding this comment.
This file imports from vue twice (top-level import and a later import { onUnmounted } from 'vue' further down). Consolidate these into a single top-level import to avoid non-idiomatic mid-file imports and keep the module header consistent.
| import { ref, onMounted, computed } from 'vue' | |
| import { ref, onMounted, onUnmounted, computed } from 'vue' |
|
@copilot apply changes based on the comments in this thread |
…p-level import Agent-Logs-Url: https://github.com/MaximumTrainer/OpenDataMask/sessions/1fb5cebf-fd21-44f8-9edb-6f2122f6c3a2 Co-authored-by: MaximumTrainer <1376575+MaximumTrainer@users.noreply.github.com>
Done in 68deb47. Consolidated the two |
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
ci.yml: correct Gradle task, add JaCoCo coverage upload, fix frontend lint enforcementpackage.json, create.eslintrc.cjsconfig, renameModal.vue→AppModal.vuedocker.yml: add CLI image build/push, PR verification, conditional pushcodeql.yml: add Go analysis job for the CLIvueimports inJobsView.vueinto a single top-level import