chore(deps): update all non-major dependencies #195
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/[email protected] | |
- 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/[email protected] | |
- 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/[email protected] | |
- 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 |