From 62eba02803ae0518bb0c440fa867eb9d4f1c8ee8 Mon Sep 17 00:00:00 2001 From: Konrad Szwarc Date: Tue, 17 Jun 2025 17:34:15 +0200 Subject: [PATCH 1/2] ci: simplify CI workflows --- .github/scripts/update-changelog.js | 19 -- .github/workflows/create-issue-branch.yml | 16 -- .../workflows/dependency-update-changelog.yml | 40 ---- .github/workflows/main-branch.yml | 136 ------------- .github/workflows/pull-request.yml | 188 ------------------ .github/workflows/run-checks.yml | 50 +++++ 6 files changed, 50 insertions(+), 399 deletions(-) delete mode 100644 .github/scripts/update-changelog.js delete mode 100644 .github/workflows/create-issue-branch.yml delete mode 100644 .github/workflows/dependency-update-changelog.yml delete mode 100644 .github/workflows/main-branch.yml delete mode 100644 .github/workflows/pull-request.yml create mode 100644 .github/workflows/run-checks.yml diff --git a/.github/scripts/update-changelog.js b/.github/scripts/update-changelog.js deleted file mode 100644 index 5bf972d..0000000 --- a/.github/scripts/update-changelog.js +++ /dev/null @@ -1,19 +0,0 @@ -const fs = require('fs'); - -module.exports = (version, prNumber) => { - const changelog = fs.readFileSync('CHANGELOG.md', 'utf8'); - const changelogLines = changelog.split('\n'); - const lastChangeIndex = changelogLines.findIndex((line) => line.startsWith('## [')); - - const textToAppend = ` -## [${version}] - ${new Date().toISOString().split('T')[0]} - -### Dependencies - -- chore(deps): update dependencies ([details](https://github.com/KonradSzwarc/devscard/pull/${prNumber})) -`.trim(); - - changelogLines.splice(lastChangeIndex, 0, textToAppend + '\n'); - - fs.writeFileSync('CHANGELOG.md', changelogLines.join('\n')); -}; diff --git a/.github/workflows/create-issue-branch.yml b/.github/workflows/create-issue-branch.yml deleted file mode 100644 index 903037f..0000000 --- a/.github/workflows/create-issue-branch.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Create Issue Branch - -on: - issues: - types: [assigned] - pull_request: - types: [closed] - -jobs: - create_issue_branch_job: - runs-on: ubuntu-latest - steps: - - name: Create Issue Branch - uses: robvanderleek/create-issue-branch@main - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/dependency-update-changelog.yml b/.github/workflows/dependency-update-changelog.yml deleted file mode 100644 index cd7f181..0000000 --- a/.github/workflows/dependency-update-changelog.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Modify changelog for dependency updates - -on: - pull_request: - types: [labeled] - -jobs: - build: - if: github.event.label.name == 'dependencies' && github.repository == 'KonradSzwarc/devscard' - runs-on: ubuntu-latest - permissions: - contents: write - - steps: - - uses: actions/checkout@v3 - with: - token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} - - name: Get project information - id: projectinfo - uses: gregoranders/nodejs-project-info@v0.0.20 - - name: Get next possible versions - id: semvers - uses: WyriHaximus/github-action-next-semvers@v1 - with: - version: ${{ steps.projectinfo.outputs.version }} - - name: Update package.json version - uses: reedyuk/npm-version@1.2.1 - with: - version: ${{ steps.semvers.outputs.patch }} - - name: Update CHANGELOG.md - uses: actions/github-script@v6 - with: - script: | - const script = require('.github/scripts/update-changelog.js'); - const version = '${{ steps.semvers.outputs.patch }}'; - const prNumber = '${{ github.event.pull_request.number }}'; - - script(version, prNumber); - - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4 diff --git a/.github/workflows/main-branch.yml b/.github/workflows/main-branch.yml deleted file mode 100644 index e07a598..0000000 --- a/.github/workflows/main-branch.yml +++ /dev/null @@ -1,136 +0,0 @@ -name: Main Branch - -on: - push: - branches: [main] - -jobs: - prettier: - name: Run Prettier check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - name: Install dependencies - run: npm ci - - name: Run Prettier - run: npm run prettier:check - - typescript: - name: Run TypeScript check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - name: Install dependencies - run: npm ci - - name: Run TypeScript types check - run: npm run ts:check - - astro: - name: Run Astro check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - name: Install dependencies - run: npm ci - - name: Run Astro check - run: npm run astro:check - - deploy: - name: Deploy to Netlify - needs: [prettier, typescript, astro] - if: github.repository == 'KonradSzwarc/devscard' - runs-on: ubuntu-latest - outputs: - deploy-url: ${{ steps.netlify.outputs.deploy-url }} - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - name: Install dependencies - run: npm ci - - name: Run Astro build command - run: npm run build - - name: Deploy to Netlify - id: netlify - uses: nwtgck/actions-netlify@v2 - with: - publish-dir: dist - production-branch: main - github-token: ${{ secrets.GITHUB_TOKEN }} - production-deploy: true - env: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - timeout-minutes: 1 - - percy: - name: Run Percy check - if: github.repository == 'KonradSzwarc/devscard' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - name: Install dependencies - run: npm ci - - name: Run Astro build command - run: npm run build - env: - PUBLIC_APP_ENV: snapshot - - name: Percy check - env: - PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} - run: npx percy snapshot dist/ - - lighthouse: - name: Run Lighthouse check - if: github.repository == 'KonradSzwarc/devscard' - needs: deploy - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Lighthouse check - uses: foo-software/lighthouse-check-action@master - with: - urls: ${{ needs.deploy.outputs.deploy-url }} - device: all - - release: - name: Create release - if: github.repository == 'KonradSzwarc/devscard' - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - uses: actions/checkout@v3 - - name: Get project information - id: projectinfo - uses: gregoranders/nodejs-project-info@v0.0.20 - - name: Get changelog entries - id: changelog_reader - uses: mindsers/changelog-reader-action@v2 - with: - version: ${{ steps.projectinfo.outputs.version }} - - name: Create a new tag and release - uses: ncipollo/release-action@v1 - with: - tag: ${{ steps.changelog_reader.outputs.version }} - name: Release ${{ steps.changelog_reader.outputs.version }} - body: ${{ steps.changelog_reader.outputs.changes }} - allowUpdates: true diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml deleted file mode 100644 index 4fd295c..0000000 --- a/.github/workflows/pull-request.yml +++ /dev/null @@ -1,188 +0,0 @@ -name: Pull Request - -on: - pull_request: - branches: [main] - types: [opened, edited, synchronize] - -jobs: - lint-title: - name: Validate PR title - if: github.repository == 'KonradSzwarc/devscard' - runs-on: ubuntu-latest - steps: - - uses: amannn/action-semantic-pull-request@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - requireScope: false - - version: - name: Check package.json version - if: github.repository == 'KonradSzwarc/devscard' - runs-on: ubuntu-latest - steps: - - name: Checkout PR branch - uses: actions/checkout@v3 - with: - ref: ${{ github.event.pull_request.head.sha }} - - name: Get project information - id: projectinfo-current - uses: gregoranders/nodejs-project-info@v0.0.20 - - name: Checkout main branch - uses: actions/checkout@v3 - with: - ref: ${{ github.event.pull_request.base.sha }} - - name: Get project information - id: projectinfo-main - uses: gregoranders/nodejs-project-info@v0.0.20 - - name: Get next possible versions - id: semvers - uses: WyriHaximus/github-action-next-semvers@v1 - with: - version: ${{ steps.projectinfo-main.outputs.version }} - - name: Assert correct version bump - uses: nick-fields/assert-action@v1 - with: - expected: ${{ steps.projectinfo-current.outputs.version }} - actual: 'Possible version bumps: ${{ steps.semvers.outputs.patch }}, ${{ steps.semvers.outputs.minor }}, ${{ steps.semvers.outputs.major }}' - comparison: contains - - changelog: - name: Check changelog - if: github.repository == 'KonradSzwarc/devscard' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - - name: Get project information - id: projectinfo - uses: gregoranders/nodejs-project-info@v0.0.20 - - name: Enforce changelog update - uses: dangoslen/changelog-enforcer@v3 - with: - expectedLatestVersion: ${{ steps.projectinfo.outputs.version }} - - name: Get changelog entries - id: changelog_reader - uses: mindsers/changelog-reader-action@v2 - with: - version: ${{ steps.projectinfo.outputs.version }} - - name: Assert correct changelog version - uses: nick-fields/assert-action@v1 - with: - expected: ${{ steps.projectinfo.outputs.version }} - actual: ${{ steps.changelog_reader.outputs.version }} - - prettier: - name: Run Prettier check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - name: Install dependencies - run: npm ci - - name: Run Prettier - run: npm run prettier:check - - typescript: - name: Run TypeScript check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - name: Install dependencies - run: npm ci - - name: Run TypeScript types check - run: npm run ts:check - - astro: - name: Run Astro check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - name: Install dependencies - run: npm ci - - name: Run Astro check - run: npm run astro:check - - percy: - name: Run Percy check - if: github.repository == 'KonradSzwarc/devscard' - needs: [prettier, typescript, astro, lint-title, version, changelog] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - name: Install dependencies - run: npm ci - - name: Run Astro build command - run: npm run build - env: - PUBLIC_APP_ENV: snapshot - - name: Percy check - env: - PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} - run: npx percy snapshot dist/ - - preview: - name: Create deploy preview - needs: [prettier, typescript, astro, lint-title, version, changelog] - if: github.repository == 'KonradSzwarc/devscard' - runs-on: ubuntu-latest - outputs: - deploy-url: ${{ steps.netlify.outputs.deploy-url }} - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: npm - - name: Install dependencies - run: npm ci - - name: Run Astro build command - run: npm run build - - name: Deploy to Netlify - id: netlify - uses: nwtgck/actions-netlify@v2 - with: - publish-dir: dist - production-branch: main - github-token: ${{ secrets.GITHUB_TOKEN }} - alias: deploy-preview-${{ github.event.number }} - env: - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - timeout-minutes: 1 - - lighthouse: - name: Run Lighthouse check - if: github.repository == 'KonradSzwarc/devscard' - needs: preview - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Lighthouse check - uses: foo-software/lighthouse-check-action@master - with: - urls: ${{ needs.preview.outputs.deploy-url }} - gitAuthor: ${{ github.actor }} - gitBranch: ${{ github.ref }} - gitHubAccessToken: ${{ secrets.GITHUB_TOKEN }} - device: all - prCommentEnabled: true - prCommentSaveOld: false diff --git a/.github/workflows/run-checks.yml b/.github/workflows/run-checks.yml new file mode 100644 index 0000000..85d3fcd --- /dev/null +++ b/.github/workflows/run-checks.yml @@ -0,0 +1,50 @@ +name: Run Checks + +on: + pull_request: + branches: [main] + push: + branches: [main] + +jobs: + prettier: + name: Run Prettier check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: npm + - name: Install dependencies + run: npm ci + - name: Run Prettier + run: npm run prettier:check + + typescript: + name: Run TypeScript check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: npm + - name: Install dependencies + run: npm ci + - name: Run TypeScript types check + run: npm run ts:check + + astro: + name: Run Astro check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: npm + - name: Install dependencies + run: npm ci + - name: Run Astro check + run: npm run astro:check From 3111452adb9aac735fe8cdcc861a60612e963da5 Mon Sep 17 00:00:00 2001 From: Konrad Szwarc Date: Tue, 17 Jun 2025 17:34:44 +0200 Subject: [PATCH 2/2] chore: change sample resume URL --- README.md | 2 +- docs/SUMMARY.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0bb068c..ed48a3b 100644 --- a/README.md +++ b/README.md @@ -31,4 +31,4 @@ To learn how to set up your resume, go to: To see an example CV, visit the link below: -[https://devscard.netlify.app](https://devscard.netlify.app/) +[devscard-resume.pages.dev](https://devscard-resume.pages.dev) diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index a98237f..e581b0e 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -11,5 +11,5 @@ ## External links -- [Example resume](https://devscard.netlify.app) +- [Example resume](https://devscard-resume.pages.dev) - [GitHub repository](https://github.com/KonradSzwarc/devscard)