From 21faabfebe63c45c7897ef7d7b4dd51300fc49e4 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 00:28:21 +0530 Subject: [PATCH 01/33] Create outputs.tf --- terraform-iac/outputs.tf | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 terraform-iac/outputs.tf diff --git a/terraform-iac/outputs.tf b/terraform-iac/outputs.tf new file mode 100644 index 000000000..47177120f --- /dev/null +++ b/terraform-iac/outputs.tf @@ -0,0 +1,7 @@ +output "instance_public_ip" { + value = aws_instance.my_ec2.public_ip +} + +output "instance_id" { + value = aws_instance.my_ec2.id +} From 6613eff5786a270a660be8dd9040d06d61d5d046 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 12:33:16 +0530 Subject: [PATCH 02/33] build and testing code-quality-check.yml --- .github/workflows/code-quality-check.yml | 91 ++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 .github/workflows/code-quality-check.yml diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml new file mode 100644 index 000000000..65100d4e2 --- /dev/null +++ b/.github/workflows/code-quality-check.yml @@ -0,0 +1,91 @@ +name: Go Code Quality + +on: + workflow_call: + +jobs: + code-quality: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + matrix: + go-version: ["1.21", "1.22", "1.23"] + + steps: + # ============================== + # Checkout Repository + # ============================== + + - name: Checkout Code + uses: actions/checkout@v4 + + # ============================== + # Setup Go Environment + # ============================== + + - name: Setup Go ${{ matrix.go-version }} + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + + # ============================== + # Verify Go Installation + # ============================== + + - name: Verify Go Version + run: go version + + # ============================== + # Verify go.mod Exists + # ============================== + + - name: Check go.mod + run: | + if [ ! -f go.mod ]; then + echo "go.mod file not found!" + exit 1 + fi + + # ============================== + # Install Dependencies + # ============================== + + - name: Install Dependencies + run: | + go mod tidy + go mod download + + # ============================== + # Format Check + # ============================== + + - name: Run gofmt + run: | + test -z "$(gofmt -l .)" + + # ============================== + # Static Analysis + # ============================== + + - name: Run go vet + run: | + go vet ./... + + # ============================== + # GolangCI Lint + # ============================== + + - name: Run golangci-lint + uses: golangci/golangci-lint-action@v6 + with: + version: latest + + # ============================== + # Run Unit Tests + # ============================== + + - name: Run Tests + run: | + go test ./... -v From bbb97aa7ee553188574a7db8032201e4d314c0af Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 12:36:40 +0530 Subject: [PATCH 03/33] Create secret-scan.yml --- .github/workflows/secret-scan.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/secret-scan.yml diff --git a/.github/workflows/secret-scan.yml b/.github/workflows/secret-scan.yml new file mode 100644 index 000000000..3a8ed9d9f --- /dev/null +++ b/.github/workflows/secret-scan.yml @@ -0,0 +1,19 @@ +name: Secret scan + +on: + workflow_call: + + +jobs: + secret-scan: + runs-on: ubuntu-latest + steps: + - name: checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: run gitleaks + uses: gitleaks/gitleaks-action@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # github action manage it From c7e7d121a030d6e153c483ae013ea60a4e0861ae Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 12:38:06 +0530 Subject: [PATCH 04/33] Create dependency-scan.yml --- .github/workflows/dependency-scan.yml | 97 +++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 .github/workflows/dependency-scan.yml diff --git a/.github/workflows/dependency-scan.yml b/.github/workflows/dependency-scan.yml new file mode 100644 index 000000000..edf0407da --- /dev/null +++ b/.github/workflows/dependency-scan.yml @@ -0,0 +1,97 @@ +name: Dependency Vulnerability Scan + +on: + workflow_call: + +jobs: + dependency-scan: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + matrix: + go-version: ["1.21", "1.22", "1.23"] + + steps: + + # ============================== + # Checkout Repository + # ============================== + + - name: Checkout Code + uses: actions/checkout@v4 + + # ============================== + # Setup Go Environment + # ============================== + + - name: Setup Go ${{ matrix.go-version }} + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + + # ============================== + # Verify Go Installation + # ============================== + + - name: Verify Go Version + run: go version + + # ============================== + # Verify go.mod Exists + # ============================== + + - name: Check go.mod + run: | + if [ ! -f go.mod ]; then + echo "go.mod file not found!" + exit 1 + fi + + # ============================== + # Install Dependencies + # ============================== + + - name: Install Dependencies + run: | + go mod tidy + go mod download + + # ============================== + # Run govulncheck + # ============================== + + - name: Install govulncheck + run: | + go install golang.org/x/vuln/cmd/govulncheck@latest + + - name: Run Dependency Vulnerability Scan + run: | + govulncheck ./... + + # ============================== + # Run Trivy Filesystem Scan + # ============================== + + - name: Run Trivy Filesystem Scan + uses: aquasecurity/trivy-action@0.24.0 + with: + scan-type: fs + scan-ref: . + format: table + exit-code: 1 + ignore-unfixed: true + severity: CRITICAL,HIGH + + # ============================== + # Upload Trivy Report (Optional) + # ============================== + + - name: Upload Trivy Report + if: always() + uses: actions/upload-artifact@v4 + with: + name: trivy-dependency-report + path: trivy-results.sarif + if-no-files-found: ignore From 438bcc964a334063e4f67e1f20ff707ba8cdd7fa Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 12:41:12 +0530 Subject: [PATCH 05/33] Create docker-lint.yml --- .github/workflows/docker-lint.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/docker-lint.yml diff --git a/.github/workflows/docker-lint.yml b/.github/workflows/docker-lint.yml new file mode 100644 index 000000000..e0873d4d1 --- /dev/null +++ b/.github/workflows/docker-lint.yml @@ -0,0 +1,25 @@ +name: Docker Lint + +on: + workflow_call: + pull_request: + +jobs: + docker-lint: + runs-on: ubuntu-latest + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Lint Backend Dockerfile + run: | + docker run --rm \ + -v ${{ github.workspace }}/backend/Dockerfile:/Dockerfile \ + hadolint/hadolint hadolint --ignore DL3018 /Dockerfile + + - name: Lint Frontend Dockerfile + run: | + docker run --rm \ + -v ${{ github.workspace }}/frontend/Dockerfile:/Dockerfile \ + hadolint/hadolint hadolint --ignore DL3018 /Dockerfile From d7821544c7bec564b87077cae137caa6d1ab06d0 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 12:44:12 +0530 Subject: [PATCH 06/33] Create devsecops-pipeline.yml --- .github/workflows/devsecops-pipeline.yml | 39 ++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/workflows/devsecops-pipeline.yml diff --git a/.github/workflows/devsecops-pipeline.yml b/.github/workflows/devsecops-pipeline.yml new file mode 100644 index 000000000..e11f4cd91 --- /dev/null +++ b/.github/workflows/devsecops-pipeline.yml @@ -0,0 +1,39 @@ +name: Devsecops End to End Pipeline + +on: + workflow_dispatch: + push: + branches: [main,feat/dev] + +jobs: + # 🔹 CI Security Checks (fast fail) + code-quality: + uses: ./.github/workflows/code-quality-check.yml + + secret-scan: + uses: ./.github/workflows/secret-scan.yml + secrets: inherit + + dependency-scan: + uses: ./.github/workflows/dependency-scan.yml + + docker-lint: + uses: ./.github/workflows/docker-lint.yml + + # 🔹 Build only after code is clean + build: + needs: [code-quality, secret-scan, dependency-scan, docker-lint] + uses: ./.github/workflows/ci.yml + secrets: inherit + + # 🔹 Image Scan (Trivy) AFTER build + trivy: + needs: build + uses: ./.github/workflows/image-scan.yml + secrets: inherit + + # 🔹 Deploy only if everything passed + deploy: + needs: trivy + uses: ./.github/workflows/cd.yml + secrets: inherit From 4425041e45ce47b0693673b80c2106fa40ef08bd Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 12:45:29 +0530 Subject: [PATCH 07/33] Create image-scan.yml --- .github/workflows/image-scan.yml | 47 ++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .github/workflows/image-scan.yml diff --git a/.github/workflows/image-scan.yml b/.github/workflows/image-scan.yml new file mode 100644 index 000000000..bb3501af2 --- /dev/null +++ b/.github/workflows/image-scan.yml @@ -0,0 +1,47 @@ +name: Image scanner + +on: + workflow_call: + secrets: + DOCKER_USERNAME: + required: true + DOCKER_PASSWORD: + required: true + +jobs: + image-scanner: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + # FIXED: Swapped out mismatched names to match the inputs declared above exactly + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + + # Note: Removed the manual Trivy installation apt steps since the action below handles it natively + + - name: Scan Backend Image + uses: aquasecurity/trivy-action@v0.36.0 # Fixed the version prefix to prevent resolution errors + with: + image-ref: ${{ secrets.DOCKER_USERNAME }}/skillpulse-backend:latest + format: 'table' + exit-code: 1 + severity: 'CRITICAL,HIGH' + trivyignores: .trivyignore + + - name: Scan Frontend Image + uses: aquasecurity/trivy-action@v0.36.0 # Fixed all version prefix to prevent resolution errors + with: + image-ref: ${{ secrets.DOCKER_USERNAME }}/skillpulse-frontend:latest + format: 'table' + exit-code: 1 + severity: 'CRITICAL,HIGH' + + - name: Logout from Docker Hub + if: always() + run: docker logout From 74d0365030d4b418f086761cc98d72b88138e028 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 23:29:39 +0530 Subject: [PATCH 08/33] Update devsecops-pipeline.yml --- .github/workflows/devsecops-pipeline.yml | 79 +++++++++++++----------- 1 file changed, 43 insertions(+), 36 deletions(-) diff --git a/.github/workflows/devsecops-pipeline.yml b/.github/workflows/devsecops-pipeline.yml index e11f4cd91..2ed0f0907 100644 --- a/.github/workflows/devsecops-pipeline.yml +++ b/.github/workflows/devsecops-pipeline.yml @@ -1,39 +1,46 @@ -name: Devsecops End to End Pipeline +name: DevSecOps End To End Pipeline -on: - workflow_dispatch: - push: - branches: [main,feat/dev] +on: + push: + branches: + - main + - feat/dev jobs: - # 🔹 CI Security Checks (fast fail) - code-quality: - uses: ./.github/workflows/code-quality-check.yml - - secret-scan: - uses: ./.github/workflows/secret-scan.yml - secrets: inherit - - dependency-scan: - uses: ./.github/workflows/dependency-scan.yml - - docker-lint: - uses: ./.github/workflows/docker-lint.yml - - # 🔹 Build only after code is clean - build: - needs: [code-quality, secret-scan, dependency-scan, docker-lint] - uses: ./.github/workflows/ci.yml - secrets: inherit - - # 🔹 Image Scan (Trivy) AFTER build - trivy: - needs: build - uses: ./.github/workflows/image-scan.yml - secrets: inherit - - # 🔹 Deploy only if everything passed - deploy: - needs: trivy - uses: ./.github/workflows/cd.yml - secrets: inherit + # CI (Continous Integration with Security Scanning) + code-quality: + uses: ./.github/workflows/code-quality-check.yml + + secrets-scan: + uses: ./.github/workflows/secret-scan.yml + secrets: inherit + + dependency-scan: + uses: ./.github/workflows/dependency-scan.yml + + docker-scan: + uses: ./.github/workflows/docker-lint.yml + + # Build once the security scans and tests are complete + build: + needs: [code-quality, secrets-scan, dependency-scan, docker-scan] + uses: ./.github/workflows/docker-build-push.yml + secrets: inherit + + tests: + uses: ./.github/workflows/tests.yml + + # Image scan + trivy: + needs: [build] + uses: ./.github/workflows/image-scan.yml + secrets: inherit + + + # CD : Deploy to Production + deploy: + needs: [trivy] + uses: ./.github/workflows/deploy-to-server.yml + secrets: inherit + + From 6b4c5823933f55974f631bac3cb2ef986cb97998 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 23:30:18 +0530 Subject: [PATCH 09/33] Create tests.yml --- .github/workflows/tests.yml | 102 ++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 000000000..c5587c80a --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,102 @@ +name: Go Unit Tests + +on: + workflow_call: + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + matrix: + go-version: ["1.21", "1.22", "1.23"] + + steps: + + # ============================== + # Checkout Repository + # ============================== + + - name: Checkout Code + uses: actions/checkout@v4 + + # ============================== + # Setup Go + # ============================== + + - name: Setup Go ${{ matrix.go-version }} + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + + # ============================== + # Verify Go Installation + # ============================== + + - name: Verify Go Version + run: go version + + # ============================== + # Verify go.mod Exists + # ============================== + + - name: Check go.mod + run: | + if [ ! -f go.mod ]; then + echo "go.mod file not found!" + exit 1 + fi + + # ============================== + # Cache Go Modules + # ============================== + + - name: Cache Go Modules + uses: actions/cache@v4 + with: + path: | + ~/go/pkg/mod + ~/.cache/go-build + + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + + restore-keys: | + ${{ runner.os }}-go- + + # ============================== + # Install Dependencies + # ============================== + + - name: Install Dependencies + run: | + go mod tidy + go mod download + + # ============================== + # Run Unit Tests + # ============================== + + - name: Run Go Tests + run: | + go test ./... -v + + # ============================== + # Generate Coverage Report + # ============================== + + - name: Generate Coverage Report + run: | + go test ./... -coverprofile=coverage.out + + # ============================== + # Upload Coverage Report + # ============================== + + - name: Upload Coverage Report + uses: actions/upload-artifact@v4 + with: + name: go-coverage-report + path: coverage.out + if-no-files-found: ignore From 6b623871dbcc39e80e90320d9e3c413f26861152 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 23:31:18 +0530 Subject: [PATCH 10/33] Create deploy-to-server.yml --- .github/workflows/deploy-to-server.yml | 52 ++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .github/workflows/deploy-to-server.yml diff --git a/.github/workflows/deploy-to-server.yml b/.github/workflows/deploy-to-server.yml new file mode 100644 index 000000000..ed9f3186b --- /dev/null +++ b/.github/workflows/deploy-to-server.yml @@ -0,0 +1,52 @@ +# this will deploy the safe / secure / tested app to Prod server +name: Deploy To Server + +on: + workflow_call: + + +jobs: + deploy: + runs-on: ubuntu-latest + env: + DOCKERHUB_USER: ${{ vars.DOCKERHUB_USER }} + DOCKER_TAG: ${{ github.sha }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: SSH to Prod server & create app folder + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.EC2_SSH_HOST }} + username: ${{ secrets.EC2_SSH_USER }} + key: ${{ secrets.EC2_SSH_PRIVATE_KEY }} + script: | + echo "Installing required packages & folders" + sudo apt-get update && sudo apt-get install docker.io docker-compose-v2 -y + sudo usermod -aG docker $USER + mkdir -p devops + + - name: Copy the docker-compose file + uses: appleboy/scp-action@v1 + with: + host: ${{ secrets.EC2_SSH_HOST }} + username: ${{ secrets.EC2_SSH_USER }} + key: ${{ secrets.EC2_SSH_PRIVATE_KEY }} + source: docker-compose.yml + target: ~/devops + + - name: SSH to Prod server & run the app + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.EC2_SSH_HOST }} + username: ${{ secrets.EC2_SSH_USER }} + key: ${{ secrets.EC2_SSH_PRIVATE_KEY }} + script: | + echo "Running App" + + export DOCKERHUB_USER=${{ vars.DOCKERHUB_USER }} + export DOCKER_TAG=${{ github.sha }} + echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login --username ${{ vars.DOCKERHUB_USER }} --password-stdin + cd ~/devops && docker compose down && docker compose up -d --build --force-recreate --pull always From 169b10009ae6bfe24d1f2954d112cb6f1c9d340e Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 23:32:39 +0530 Subject: [PATCH 11/33] Create docker-build-push.yml --- .github/workflows/docker-build-push.yml | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/docker-build-push.yml diff --git a/.github/workflows/docker-build-push.yml b/.github/workflows/docker-build-push.yml new file mode 100644 index 000000000..b79234677 --- /dev/null +++ b/.github/workflows/docker-build-push.yml @@ -0,0 +1,29 @@ +name: Docker Build & Push + +on: + workflow_call: + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + + - name: Code Checkout + uses: actions/checkout@v4 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ vars.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build & Push to Docker Hub + uses: docker/build-push-action@v6 + with: + context: . + push: true + tags: | + ${{ vars.DOCKERHUB_USER }}/github-actions-app:${{ github.ref_name }} + ${{ vars.DOCKERHUB_USER }}/github-actions-app:latest + ${{ vars.DOCKERHUB_USER }}/github-actions-app:${{ github.sha}} From 43a2dc637be1cfcae721364d19dab1822d73c2cc Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Wed, 20 May 2026 23:50:20 +0530 Subject: [PATCH 12/33] Create playbook.yml --- Ansible/playbook.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Ansible/playbook.yml diff --git a/Ansible/playbook.yml b/Ansible/playbook.yml new file mode 100644 index 000000000..d56ac6858 --- /dev/null +++ b/Ansible/playbook.yml @@ -0,0 +1,46 @@ +--- +- name: Configure SkillPulse EC2 Instance + hosts: all + become: yes + tasks: + - name: Update apt packages + apt: + update_cache: yes + cache_valid_time: 3600 + + - name: Install dependencies + apt: + name: + - apt-transport-https + - ca-certificates + - curl + - software-properties-common + - git + state: present + + - name: Add Docker GPG key + apt_key: + url: https://download.docker.com/linux/ubuntu/gpg + state: present + + - name: Add Docker repository + apt_repository: + repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable + state: present + + - name: Install Docker + apt: + name: docker-ce + state: present + + - name: Ensure Docker is running and enabled + service: + name: docker + state: started + enabled: yes + + - name: Add user to docker group + user: + name: ubuntu + groups: docker + append: yes From 0b7cd181dc818274609ae753f404e0ae9988ce00 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 00:36:29 +0530 Subject: [PATCH 13/33] Update code-quality-check.yml --- .github/workflows/code-quality-check.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 65100d4e2..5b087cf1b 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -41,12 +41,12 @@ jobs: # Verify go.mod Exists # ============================== - - name: Check go.mod - run: | - if [ ! -f go.mod ]; then - echo "go.mod file not found!" - exit 1 - fi + + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version-file: backend/go.mod + cache: true # ============================== # Install Dependencies From 135d33dd4c92abe89fe761f49ec75318a071bcb4 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 00:39:23 +0530 Subject: [PATCH 14/33] Update code-quality-check.yml --- .github/workflows/code-quality-check.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 5b087cf1b..66c1a0e96 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -9,7 +9,6 @@ jobs: strategy: fail-fast: false - matrix: go-version: ["1.21", "1.22", "1.23"] @@ -25,10 +24,12 @@ jobs: # Setup Go Environment # ============================== - - name: Setup Go ${{ matrix.go-version }} + - name: Setup Go uses: actions/setup-go@v5 with: go-version: ${{ matrix.go-version }} + cache: true + cache-dependency-path: backend/go.sum # ============================== # Verify Go Installation @@ -41,18 +42,19 @@ jobs: # Verify go.mod Exists # ============================== - - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version-file: backend/go.mod - cache: true + - name: Check go.mod + run: | + if [ ! -f backend/go.mod ]; then + echo "backend/go.mod file not found!" + exit 1 + fi # ============================== # Install Dependencies # ============================== - name: Install Dependencies + working-directory: backend run: | go mod tidy go mod download @@ -62,6 +64,7 @@ jobs: # ============================== - name: Run gofmt + working-directory: backend run: | test -z "$(gofmt -l .)" @@ -70,6 +73,7 @@ jobs: # ============================== - name: Run go vet + working-directory: backend run: | go vet ./... @@ -81,11 +85,13 @@ jobs: uses: golangci/golangci-lint-action@v6 with: version: latest + working-directory: backend # ============================== # Run Unit Tests # ============================== - name: Run Tests + working-directory: backend run: | go test ./... -v From eef392f53245c2094a8de31114cfc2ce744369e4 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 00:43:07 +0530 Subject: [PATCH 15/33] Update go-version --- .github/workflows/code-quality-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 66c1a0e96..2dc592d71 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -10,7 +10,7 @@ jobs: strategy: fail-fast: false matrix: - go-version: ["1.21", "1.22", "1.23"] + go-version: ["1.23","1.24"] steps: # ============================== From 918f30d8bb596c079bb63df8ad1b0601f3b74e46 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 00:45:42 +0530 Subject: [PATCH 16/33] Update code-quality-check.yml From 5af7b19858394f5be031f0c5ae4f59547679af95 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 00:48:14 +0530 Subject: [PATCH 17/33] Update large go-version --- .github/workflows/code-quality-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 2dc592d71..ac4815d53 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -10,7 +10,7 @@ jobs: strategy: fail-fast: false matrix: - go-version: ["1.23","1.24"] + go-version: ["1.23","1.24","1.25","1.26"] steps: # ============================== From ea1538a687377c37feb41b90a41adf64f0865ca3 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 00:54:14 +0530 Subject: [PATCH 18/33] Update code-quality --- .github/workflows/code-quality-check.yml | 188 +++++++++++------------ 1 file changed, 94 insertions(+), 94 deletions(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index ac4815d53..4ae0ad118 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -1,97 +1,97 @@ -name: Go Code Quality - -on: - workflow_call: - -jobs: - code-quality: - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - go-version: ["1.23","1.24","1.25","1.26"] - - steps: - # ============================== - # Checkout Repository - # ============================== - - - name: Checkout Code - uses: actions/checkout@v4 - - # ============================== - # Setup Go Environment - # ============================== - - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - cache: true - cache-dependency-path: backend/go.sum - - # ============================== - # Verify Go Installation - # ============================== - - - name: Verify Go Version - run: go version - - # ============================== - # Verify go.mod Exists - # ============================== - - - name: Check go.mod - run: | - if [ ! -f backend/go.mod ]; then - echo "backend/go.mod file not found!" - exit 1 - fi - - # ============================== - # Install Dependencies - # ============================== - - - name: Install Dependencies - working-directory: backend - run: | - go mod tidy - go mod download - - # ============================== - # Format Check - # ============================== - - - name: Run gofmt - working-directory: backend - run: | - test -z "$(gofmt -l .)" - - # ============================== - # Static Analysis - # ============================== - - - name: Run go vet - working-directory: backend - run: | - go vet ./... - - # ============================== - # GolangCI Lint - # ============================== - - - name: Run golangci-lint - uses: golangci/golangci-lint-action@v6 - with: - version: latest + name: Go Code Quality + + on: + workflow_call: + + jobs: + code-quality: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + go-version: ["1.23","1.24"] + + steps: + # ============================== + # Checkout Repository + # ============================== + + - name: Checkout Code + uses: actions/checkout@v4 + + # ============================== + # Setup Go Environment + # ============================== + + - name: Setup Go + uses: actions/setup-go@v6 + with: + go-version: ${{ matrix.go-version }} + cache: true + cache-dependency-path: backend/go.sum + + # ============================== + # Verify Go Installation + # ============================== + + - name: Verify Go Version + run: go version + + # ============================== + # Verify go.mod Exists + # ============================== + + - name: Check go.mod + run: | + if [ ! -f backend/go.mod ]; then + echo "backend/go.mod file not found!" + exit 1 + fi + + # ============================== + # Install Dependencies + # ============================== + + - name: Install Dependencies working-directory: backend + run: | + go mod tidy + go mod download - # ============================== - # Run Unit Tests - # ============================== + # ============================== + # Format Check + # ============================== - - name: Run Tests - working-directory: backend - run: | - go test ./... -v + - name: Run gofmt + working-directory: backend + run: | + test -z "$(gofmt -l .)" + + # ============================== + # Static Analysis + # ============================== + + - name: Run go vet + working-directory: backend + run: | + go vet ./... + + # ============================== + # GolangCI Lint + # ============================== + + - name: Run golangci-lint + uses: golangci/golangci-lint-action@v6 + with: + version: v1.64.8 + working-directory: backend + + # ============================== + # Run Unit Tests + # ============================== + + - name: Run Tests + working-directory: backend + run: | + go test ./... -v From faaa4dde135c89eeb61c940c1a3d28b5306a2423 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 00:55:36 +0530 Subject: [PATCH 19/33] Update code-quality-check.yml --- .github/workflows/code-quality-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 4ae0ad118..72d651696 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -10,7 +10,7 @@ strategy: fail-fast: false matrix: - go-version: ["1.23","1.24"] + go-version: ["1.24","1.25","1.26"] steps: # ============================== From 75573fc6293b561cb6ce1ed1be2433cc614e030c Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 01:05:31 +0530 Subject: [PATCH 20/33] Update go.mod --- backend/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/go.mod b/backend/go.mod index 65c447eb0..1daada79e 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -1,6 +1,6 @@ module github.com/trainwithshubham/skillpulse -go 1.26 +go 1.24 require ( github.com/gin-gonic/gin v1.9.1 From f71a0368ba3357efcfb8affbbc1929bf48209988 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 01:11:27 +0530 Subject: [PATCH 21/33] Updated ci registry pipeline --- .github/workflows/ci.yml | 104 +++++++++++++++++++++++++++++++-------- 1 file changed, 84 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7494ff97b..721031063 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: CI +name: CI Pipeline on: push: @@ -7,35 +7,99 @@ on: - 'k8s/**' - 'docs/**' - '**/*.md' + - terraform/** + workflow_dispatch: + +permissions: + id-token: write + contents: read + +env: + REGISTRY: ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com jobs: - build-and-push: + security: + name: Security Gate runs-on: ubuntu-latest + steps: - uses: actions/checkout@v4 - - uses: docker/setup-buildx-action@v4 + - name: Gitleaks + uses: gitleaks/gitleaks-action@v2 - - uses: docker/login-action@v4 - if: ${{ vars.DEPLOY_ENABLED == 'true' }} + - name: Hadolint Backend + uses: hadolint/hadolint-action@v3.1.0 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + dockerfile: backend/Dockerfile - - name: Build and push backend - uses: docker/build-push-action@v7 + - name: Hadolint Frontend + uses: hadolint/hadolint-action@v3.1.0 with: - context: ./backend - push: ${{ vars.DEPLOY_ENABLED == 'true' }} - tags: | - ${{ secrets.DOCKERHUB_USERNAME != '' && format('{0}/skillpulse-backend:latest', secrets.DOCKERHUB_USERNAME) || 'skillpulse-backend:latest' }} - ${{ secrets.DOCKERHUB_USERNAME != '' && format('{0}/skillpulse-backend:{1}', secrets.DOCKERHUB_USERNAME, github.sha) || format('skillpulse-backend:{0}', github.sha) }} + dockerfile: frontend/Dockerfile - - name: Build and push frontend - uses: docker/build-push-action@v7 + - name: Setup Go + uses: actions/setup-go@v5 with: - context: ./frontend - push: ${{ vars.DEPLOY_ENABLED == 'true' }} + go-version-file: backend/go.mod + cache: true + + - name: Run govulncheck + run: | + cd backend + go install golang.org/x/vuln/cmd/govulncheck@latest + govulncheck ./... + + build-scan-push: + name: Build, Scan & Push + runs-on: ubuntu-latest + needs: security + + strategy: + fail-fast: false + matrix: + service: [backend, frontend] + + steps: + - uses: actions/checkout@v4 + + - uses: docker/setup-buildx-action@v3 + + - name: Set TAG + run: echo "TAG=${GITHUB_SHA:0:7}" >> $GITHUB_ENV + + - name: Configure AWS (OIDC) + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_ROLE_ARN }} + aws-region: ${{ secrets.AWS_REGION }} + + - name: Login to ECR + uses: aws-actions/amazon-ecr-login@v2 + + - name: Build image + uses: docker/build-push-action@v6 + with: + context: ./${{ matrix.service }} + load: true + push: false tags: | - ${{ secrets.DOCKERHUB_USERNAME != '' && format('{0}/skillpulse-frontend:latest', secrets.DOCKERHUB_USERNAME) || 'skillpulse-frontend:latest' }} - ${{ secrets.DOCKERHUB_USERNAME != '' && format('{0}/skillpulse-frontend:{1}', secrets.DOCKERHUB_USERNAME, github.sha) || format('skillpulse-frontend:{0}', github.sha) }} + ${{ env.REGISTRY }}/skillpulse-${{ matrix.service }}:${{ env.TAG }} + ${{ env.REGISTRY }}/skillpulse-${{ matrix.service }}:latest + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Trivy Scan + uses: aquasecurity/trivy-action@master + with: + image-ref: ${{ env.REGISTRY }}/skillpulse-${{ matrix.service }}:${{ env.TAG }} + format: table + severity: CRITICAL,HIGH + exit-code: 1 + ignore-unfixed: true + + - name: Push Images + run: | + IMAGE=$REGISTRY/skillpulse-${{ matrix.service }} + docker push $IMAGE:$TAG + docker push $IMAGE:latest From 5fce991c4a173f728bb43e569340adddc8d0bca0 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 01:16:55 +0530 Subject: [PATCH 22/33] Update code-quality-check.yml --- .github/workflows/code-quality-check.yml | 176 +++++++++++------------ 1 file changed, 80 insertions(+), 96 deletions(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 72d651696..49a461c5c 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -1,97 +1,81 @@ - name: Go Code Quality - - on: - workflow_call: - - jobs: - code-quality: - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - go-version: ["1.24","1.25","1.26"] - - steps: - # ============================== - # Checkout Repository - # ============================== - - - name: Checkout Code - uses: actions/checkout@v4 - - # ============================== - # Setup Go Environment - # ============================== - - - name: Setup Go - uses: actions/setup-go@v6 - with: - go-version: ${{ matrix.go-version }} - cache: true - cache-dependency-path: backend/go.sum - - # ============================== - # Verify Go Installation - # ============================== - - - name: Verify Go Version - run: go version - - # ============================== - # Verify go.mod Exists - # ============================== - - - name: Check go.mod - run: | - if [ ! -f backend/go.mod ]; then - echo "backend/go.mod file not found!" - exit 1 - fi - - # ============================== - # Install Dependencies - # ============================== - - - name: Install Dependencies - working-directory: backend - run: | - go mod tidy - go mod download - - # ============================== - # Format Check - # ============================== - - - name: Run gofmt - working-directory: backend - run: | - test -z "$(gofmt -l .)" - - # ============================== - # Static Analysis - # ============================== - - - name: Run go vet - working-directory: backend - run: | - go vet ./... - - # ============================== - # GolangCI Lint - # ============================== - - - name: Run golangci-lint - uses: golangci/golangci-lint-action@v6 - with: - version: v1.64.8 - working-directory: backend - - # ============================== - # Run Unit Tests - # ============================== - - - name: Run Tests +name: Go Code Quality + +on: + workflow_call: + +jobs: + code-quality: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + go-version: ["1.23", "1.24"] + + steps: + # ============================== + # Checkout Repository + # ============================== + - name: Checkout Code + uses: actions/checkout@v4 + + # ============================== + # Setup Go Environment + # ============================== + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + cache: true + cache-dependency-path: backend/go.sum + + # ============================== + # Verify Go Installation + # ============================== + - name: Verify Go Version + run: go version + + # ============================== + # Verify go.mod Exists + # ============================== + - name: Check go.mod + run: | + if [ ! -f backend/go.mod ]; then + echo "backend/go.mod file not found!" + exit 1 + fi + + # ============================== + # Install Dependencies + # ============================== + - name: Install Dependencies + working-directory: backend + run: | + go mod tidy + go mod download + + # ============================== + # Format Check + # ============================== + - name: Run gofmt + working-directory: backend + run: | + test -z "$(gofmt -l .)" + + # ============================== + # Static Analysis + # ============================== + - name: Run go vet + working-directory: backend + run: | + go vet ./... + + # ============================== + # GolangCI Lint + # ============================== + - name: Run golangci-lint + uses: golangci/golangci-lint-action@v6 + with: + version: v1.60 working-directory: backend - run: | - go test ./... -v + args: --timeout=5m From 3f19b5b4a1d0f5e07cddf344fd572746292af937 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 01:21:36 +0530 Subject: [PATCH 23/33] Updated go-lang --- .github/workflows/code-quality-check.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 49a461c5c..6b47ff1ff 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -72,10 +72,19 @@ jobs: # ============================== # GolangCI Lint + # ============================== + + # ============================== + # GolangCI Lint # ============================== - name: Run golangci-lint uses: golangci/golangci-lint-action@v6 with: - version: v1.60 + # Force a version compiled with Go 1.24 support + version: v1.64.7 working-directory: backend args: --timeout=5m + # Prevents version-mismatched caches from breaking the run + skip-pkg-cache: true + skip-build-cache: true + From a8d254be1ca341a6986ea158852443b33957bd83 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 01:23:29 +0530 Subject: [PATCH 24/33] Update go lang dependencies From 59d4e1b3b16b9fe7ac1da20890c5cdc539124b7a Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 06:08:37 +0530 Subject: [PATCH 25/33] Update go matrix --- .github/workflows/code-quality-check.yml | 123 +++++++---------------- 1 file changed, 34 insertions(+), 89 deletions(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 6b47ff1ff..3bb24076a 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -1,90 +1,35 @@ -name: Go Code Quality - -on: - workflow_call: - +name: Go lint +on: + # push: + # branches: [main] + workflow_dispatch: jobs: - code-quality: - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - go-version: ["1.23", "1.24"] - - steps: - # ============================== - # Checkout Repository - # ============================== - - name: Checkout Code - uses: actions/checkout@v4 - - # ============================== - # Setup Go Environment - # ============================== - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - cache: true - cache-dependency-path: backend/go.sum - - # ============================== - # Verify Go Installation - # ============================== - - name: Verify Go Version - run: go version - - # ============================== - # Verify go.mod Exists - # ============================== - - name: Check go.mod - run: | - if [ ! -f backend/go.mod ]; then - echo "backend/go.mod file not found!" - exit 1 - fi - - # ============================== - # Install Dependencies - # ============================== - - name: Install Dependencies - working-directory: backend - run: | - go mod tidy - go mod download - - # ============================== - # Format Check - # ============================== - - name: Run gofmt - working-directory: backend - run: | - test -z "$(gofmt -l .)" - - # ============================== - # Static Analysis - # ============================== - - name: Run go vet - working-directory: backend - run: | - go vet ./... - - # ============================== - # GolangCI Lint - # ============================== - - # ============================== - # GolangCI Lint - # ============================== - - name: Run golangci-lint - uses: golangci/golangci-lint-action@v6 - with: - # Force a version compiled with Go 1.24 support - version: v1.64.7 - working-directory: backend - args: --timeout=5m - # Prevents version-mismatched caches from breaking the run - skip-pkg-cache: true - skip-build-cache: true - + validate: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + go-version: ["1.22", "1.23","1.24] + steps: + - name: checkout code + uses: actions/checkout@v4 + + - name: setup go ${{ matrix.go-version}} + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version}} + cache: true + + - name: download dependencies + run: go mod download + + - name: verify dependencies + run: go mod verify + + - name: run go vet + run: go vet ./... + + - name: run golangci-lint + uses: golangci/golangci-lint-action@v4 + with: + version: latest From 4424b28df4b2ce5b6601414d3846d7cee44f5fbc Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 06:14:42 +0530 Subject: [PATCH 26/33] Update code-quality-check.yml --- .github/workflows/code-quality-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 3bb24076a..18f059cc2 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false matrix: - go-version: ["1.22", "1.23","1.24] + go-version: ["1.22", "1.23"] steps: - name: checkout code uses: actions/checkout@v4 From 8c7103e3c348e01df0be353a74ee4bd3a3cdea8e Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 06:21:05 +0530 Subject: [PATCH 27/33] Update go-lint --- .github/workflows/code-quality-check.yml | 34 +++++++++++------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 18f059cc2..35985fdc8 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -1,35 +1,33 @@ name: Go lint + on: # push: - # branches: [main] + # branches: [main,feat/dev] workflow_dispatch: + #pull_request: + #branches:[feat/dev] + # jobs: validate: runs-on: ubuntu-latest strategy: fail-fast: false matrix: - go-version: ["1.22", "1.23"] + go-version: ["1.21", "1.22", "1.23"] steps: - name: checkout code uses: actions/checkout@v4 - - - name: setup go ${{ matrix.go-version}} + + - name: setup Go ${{ matrix.go-version}} uses: actions/setup-go@v5 with: go-version: ${{ matrix.go-version}} - cache: true + - - name: download dependencies - run: go mod download - - - name: verify dependencies - run: go mod verify - - - name: run go vet - run: go vet ./... - - - name: run golangci-lint - uses: golangci/golangci-lint-action@v4 - with: - version: latest + - name: install dependencies + run: | + go mod tidy + go mod download + + + From d2f8b7574a80a6677c32686364c90a7725493e59 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 06:27:30 +0530 Subject: [PATCH 28/33] Update go.mod --- backend/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/go.mod b/backend/go.mod index 1daada79e..65c447eb0 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -1,6 +1,6 @@ module github.com/trainwithshubham/skillpulse -go 1.24 +go 1.26 require ( github.com/gin-gonic/gin v1.9.1 From 71f6604ce2e37f649a8751f368790d64cd7f39af Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 06:30:57 +0530 Subject: [PATCH 29/33] Update code-quality-check.yml --- .github/workflows/code-quality-check.yml | 40 +++++++++++++++++++----- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 35985fdc8..2ade9b389 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -13,7 +13,10 @@ jobs: strategy: fail-fast: false matrix: - go-version: ["1.21", "1.22", "1.23"] + go-version: ["1.23", "1.24", "1.25", "1.26"] + defaults: + run: + working-directory: ./backend steps: - name: checkout code uses: actions/checkout@v4 @@ -22,12 +25,35 @@ jobs: uses: actions/setup-go@v5 with: go-version: ${{ matrix.go-version}} + cache: true + cache-dependency-path: backend/go.sum + - name: verify dependencies + run: go mod verify - - name: install dependencies + - name: download dependencies + run: go mod download + + - name: run go fmt check run: | - go mod tidy - go mod download - - - + if [ -n "$(gofmt -l .)" ]; then + echo "Go files must be formatted with gofmt" + gofmt -l . + exit 1 + fi + + - name: run go vet + run: go vet ./... + + - name: run staticcheck + run: | + go install honnef.co/go/tools/cmd/staticcheck@latest + staticcheck ./... + + - name: run golangci-lint + # Skip golangci-lint for Go 1.26 due to compatibility issues + if: matrix.go-version != '1.26' + uses: golangci/golangci-lint-action@v4 + with: + version: latest + working-directory: backend From 2fcf28538f090b53cc5c09138f43c6b877e7db9f Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 06:33:55 +0530 Subject: [PATCH 30/33] Update code-quality-check.yml --- .github/workflows/code-quality-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 2ade9b389..3b51d0d68 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - go-version: ["1.23", "1.24", "1.25", "1.26"] + go-version: ["1.26"] defaults: run: working-directory: ./backend From 472dd2c4bf39c02194618dc302d379e7962aa1c7 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 06:35:38 +0530 Subject: [PATCH 31/33] Update code-quality-check.yml --- .github/workflows/code-quality-check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/code-quality-check.yml b/.github/workflows/code-quality-check.yml index 3b51d0d68..f791c8ffb 100644 --- a/.github/workflows/code-quality-check.yml +++ b/.github/workflows/code-quality-check.yml @@ -1,8 +1,8 @@ name: Go lint on: - # push: - # branches: [main,feat/dev] + push: + branches: [main,feat/dev] workflow_dispatch: #pull_request: #branches:[feat/dev] From fdd9a5dd75e32e6cc1cadb3201f7cde9cf47f8e9 Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 06:37:21 +0530 Subject: [PATCH 32/33] Update go.mod --- backend/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/go.mod b/backend/go.mod index 65c447eb0..0ab5eece0 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -1,4 +1,4 @@ -module github.com/trainwithshubham/skillpulse +module github.com/manishvishwakarma89/skillpulse go 1.26 From 854381c33f05e73be9de5a2935a58574a0d2574f Mon Sep 17 00:00:00 2001 From: manishvishwakarma89 Date: Thu, 21 May 2026 06:38:49 +0530 Subject: [PATCH 33/33] Update main.go --- backend/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/main.go b/backend/main.go index 132d1741b..e1f2a8ce8 100644 --- a/backend/main.go +++ b/backend/main.go @@ -5,8 +5,8 @@ import ( "os" "github.com/gin-gonic/gin" - "github.com/trainwithshubham/skillpulse/database" - "github.com/trainwithshubham/skillpulse/handlers" + "github.com/manishvishwakarma89/skillpulse/database" + "github.com/manishvishwakarma89/skillpulse/handlers" ) func main() {