summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorskjnldsv <skjnldsv@protonmail.com>2024-03-08 21:02:24 +0100
committerskjnldsv <skjnldsv@protonmail.com>2024-03-08 21:02:24 +0100
commitaa0681b5756ac7616096dbb71264c24e6008b5d9 (patch)
tree3d270ee36ff49ad85e256b08d151877f45503f34
parent11a9b16b0a6fa60d1e839abb9ad4ec573ac9777e (diff)
chore: update workflows from templatesautomated/update-workflows/default
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
-rw-r--r--.github/workflows/documentation.yml64
-rw-r--r--.github/workflows/lint-eslint.yml65
2 files changed, 103 insertions, 26 deletions
diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml
index ddf60315f..5f7a4f6f9 100644
--- a/.github/workflows/documentation.yml
+++ b/.github/workflows/documentation.yml
@@ -1,25 +1,53 @@
-name: Publish docs via GitHub Pages
+name: Documentation
+
on:
- push:
- branches:
- - master
- paths:
- - 'docs/**'
+ pull_request:
+ release:
+ types: [published]
jobs:
- build:
- name: Deploy docs
+ build-and-deploy:
runs-on: ubuntu-latest
+
+ name: Build and deploy
steps:
- - name: Checkout master
- uses: actions/checkout@v4
+ - name: Check actor permission level
+ # Only allow admin to deploy on release
+ if: github.event.release
+ uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v2
+ with:
+ require: admin
+
+ - name: Checkout
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+
+ - name: Read package.json node and npm engines version
+ uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
+ id: versions
+ with:
+ fallbackNode: '^20'
+ fallbackNpm: '^10'
- - name: Deploy docs
- uses: mhausenblas/mkdocs-deploy-gh-pages@master
- # Or use mhausenblas/mkdocs-deploy-gh-pages@nomaterial to build without the mkdocs-material theme
+ - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ with:
+ node-version: ${{ steps.versions.outputs.nodeVersion }}
+
+ - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
+ run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
+
+ - name: Install dependencies & build
env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- #CUSTOM_DOMAIN: optionaldomain.com
- #CONFIG_FILE: folder/mkdocs.yml
- #EXTRA_PACKAGES: build-base
- # GITHUB_DOMAIN: github.myenterprise.com \ No newline at end of file
+ CYPRESS_INSTALL_BINARY: 0
+ run: |
+ npm ci
+ npm run build --if-present
+ npm run build:doc --if-present
+
+ - name: Deploy
+ # Only deploy on release
+ if: github.event.release
+ uses: peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 # v3.9.3
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ publish_dir: ./dist/doc
diff --git a/.github/workflows/lint-eslint.yml b/.github/workflows/lint-eslint.yml
index e59028679..d0a8a2f1d 100644
--- a/.github/workflows/lint-eslint.yml
+++ b/.github/workflows/lint-eslint.yml
@@ -2,37 +2,68 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
+#
+# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
+# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks
-name: Lint
+name: Lint eslint
on: pull_request
permissions:
contents: read
-concurrency:
+concurrency:
group: lint-eslint-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
+ changes:
+ runs-on: ubuntu-latest-low
+
+ outputs:
+ src: ${{ steps.changes.outputs.src}}
+
+ steps:
+ - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
+ id: changes
+ continue-on-error: true
+ with:
+ filters: |
+ src:
+ - '.github/workflows/**'
+ - 'src/**'
+ - 'appinfo/info.xml'
+ - 'package.json'
+ - 'package-lock.json'
+ - 'tsconfig.json'
+ - '.eslintrc.*'
+ - '.eslintignore'
+ - '**.js'
+ - '**.ts'
+ - '**.vue'
+
lint:
runs-on: ubuntu-latest
- name: eslint
+ needs: changes
+ if: needs.changes.outputs.src != 'false'
+
+ name: NPM lint
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@v2.2
+ uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
- fallbackNode: '^16'
- fallbackNpm: '^6'
+ fallbackNode: '^20'
+ fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
- uses: actions/setup-node@v4
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -40,7 +71,25 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install dependencies
+ env:
+ CYPRESS_INSTALL_BINARY: 0
+ PUPPETEER_SKIP_DOWNLOAD: true
run: npm ci
- name: Lint
run: npm run lint
+
+ summary:
+ permissions:
+ contents: none
+ runs-on: ubuntu-latest-low
+ needs: [changes, lint]
+
+ if: always()
+
+ # This is the summary, we just avoid to rename it so that branch protection rules still match
+ name: eslint
+
+ steps:
+ - name: Summary status
+ run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi