From 3f5c114dc95c50ab27cfb8952b1ee22a78971db3 Mon Sep 17 00:00:00 2001 From: Fernando Tona <105774270+fernandotonacoder@users.noreply.github.com> Date: Thu, 25 Dec 2025 19:00:06 +0000 Subject: [PATCH 1/5] Release: Netlify_2025-12-25.02 (#12) --- .github/workflows/netlify-deploy.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/netlify-deploy.yml b/.github/workflows/netlify-deploy.yml index cea1d3a..dea8c6b 100644 --- a/.github/workflows/netlify-deploy.yml +++ b/.github/workflows/netlify-deploy.yml @@ -15,18 +15,19 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + - name: Setup Node uses: actions/setup-node@v4 with: node-version: "24" + - name: Install and Build run: | npm ci npm run build + - name: Deploy to Netlify - uses: netlify/actions/cli@master + run: npx netlify-cli deploy --dir=dist --prod env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - with: - args: deploy --dir=dist --prod \ No newline at end of file From b6259e636b8269da3c029a879a586c631fb750c4 Mon Sep 17 00:00:00 2001 From: Fernando Tona <105774270+fernandotonacoder@users.noreply.github.com> Date: Thu, 25 Dec 2025 19:22:27 +0000 Subject: [PATCH 2/5] fix: Dynamic base path for netlify (#15) --- src/main.jsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main.jsx b/src/main.jsx index e66ab10..f482f42 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -4,15 +4,18 @@ import { BrowserRouter } from "react-router-dom"; import "./index.css"; import App from "./App.jsx"; +// Use "/chrisert" for GitHub Pages, "/" for Netlify +const basename = import.meta.env.BASE_URL.replace(/\/$/, "") || "/"; + const redirect = sessionStorage.getItem("redirect"); if (redirect) { sessionStorage.removeItem("redirect"); - window.history.replaceState(null, "", "/chrisert/404"); + window.history.replaceState(null, "", `${basename}/404`); } createRoot(document.getElementById("root")).render( - + From ebc76d78a4b1d603cc15dfc4cf5bc6016522b896 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Dec 2025 19:54:30 +0000 Subject: [PATCH 3/5] Initial plan From 27324b5cf2cf88d521383ebd3f497e33c9aadafa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Dec 2025 19:56:50 +0000 Subject: [PATCH 4/5] Implement CI/CD pipeline improvements with new workflows Co-authored-by: fernandotonacoder <105774270+fernandotonacoder@users.noreply.github.com> --- .github/workflows/github-pages-deploy.yml | 4 +++ .github/workflows/lint.yml | 27 ++++++++++++++++++++ .github/workflows/netlify-deploy.yml | 4 +++ .github/workflows/quality-checks.yml | 14 ++++++++++ .github/workflows/security-audit.yml | 31 +++++++++++++++++++++++ .github/workflows/test.yml | 3 +++ 6 files changed, 83 insertions(+) create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/quality-checks.yml create mode 100644 .github/workflows/security-audit.yml diff --git a/.github/workflows/github-pages-deploy.yml b/.github/workflows/github-pages-deploy.yml index 9628de8..9a760bf 100644 --- a/.github/workflows/github-pages-deploy.yml +++ b/.github/workflows/github-pages-deploy.yml @@ -15,8 +15,12 @@ concurrency: cancel-in-progress: false jobs: + test: + uses: ./.github/workflows/test.yml + build: runs-on: ubuntu-latest + needs: [test] steps: - name: Checkout uses: actions/checkout@v4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..8338661 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,27 @@ +name: Lint + +on: + pull_request: + branches: + - main + - dev + workflow_call: + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "24" + cache: "npm" + + - name: Install dependencies + run: npm ci + + - name: Run lint + run: npm run lint diff --git a/.github/workflows/netlify-deploy.yml b/.github/workflows/netlify-deploy.yml index dea8c6b..df192b8 100644 --- a/.github/workflows/netlify-deploy.yml +++ b/.github/workflows/netlify-deploy.yml @@ -4,6 +4,10 @@ on: branches: - main +concurrency: + group: netlify-production + cancel-in-progress: false + jobs: call-test: uses: ./.github/workflows/test.yml diff --git a/.github/workflows/quality-checks.yml b/.github/workflows/quality-checks.yml new file mode 100644 index 0000000..fba2e09 --- /dev/null +++ b/.github/workflows/quality-checks.yml @@ -0,0 +1,14 @@ +name: Quality Checks + +on: + pull_request: + branches: + - main + - dev + +jobs: + test: + uses: ./.github/workflows/test.yml + + lint: + uses: ./.github/workflows/lint.yml diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml new file mode 100644 index 0000000..291abc3 --- /dev/null +++ b/.github/workflows/security-audit.yml @@ -0,0 +1,31 @@ +name: Security Audit + +on: + pull_request: + branches: + - main + - dev + schedule: + - cron: '0 0 * * 0' + +jobs: + security-audit: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "24" + cache: "npm" + + - name: Install dependencies + run: npm ci + + - name: Run security audit + run: npm audit --audit-level=moderate + + - name: Check for outdated dependencies + run: npm outdated || true diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ce61485..72841e3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,3 +25,6 @@ jobs: - name: Run tests run: npm test + + - name: Verify build + run: npm run build From 8a34462433eb51a69121f49191cd93c8ca4022a0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Dec 2025 19:59:53 +0000 Subject: [PATCH 5/5] Add explicit permissions to workflows for security best practices Co-authored-by: fernandotonacoder <105774270+fernandotonacoder@users.noreply.github.com> --- .github/workflows/lint.yml | 3 +++ .github/workflows/quality-checks.yml | 2 ++ .github/workflows/security-audit.yml | 3 +++ 3 files changed, 8 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8338661..5fc54de 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,6 +7,9 @@ on: - dev workflow_call: +permissions: + contents: read + jobs: lint: runs-on: ubuntu-latest diff --git a/.github/workflows/quality-checks.yml b/.github/workflows/quality-checks.yml index fba2e09..f03a87b 100644 --- a/.github/workflows/quality-checks.yml +++ b/.github/workflows/quality-checks.yml @@ -6,6 +6,8 @@ on: - main - dev +permissions: {} + jobs: test: uses: ./.github/workflows/test.yml diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 291abc3..594fd47 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -8,6 +8,9 @@ on: schedule: - cron: '0 0 * * 0' +permissions: + contents: read + jobs: security-audit: runs-on: ubuntu-latest