Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/workflows/node-dist-unchanged.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later

name: Check node dist files

on:
pull_request:


jobs:
changed_files:
runs-on: ubuntu-latest
name: Check node dist files
permissions:
pull-requests: read

steps:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@dcc7a0cba800f454d79fff4b993e8c3555bcc0a8 # v45.0.7
with:
files: dist/**

- name: Run step if any file(s) in the dist folder change
if: steps.changed-files.outputs.any_changed == 'true'
run: |
echo "One or more files in the dist folder has changed. Do NOT commit files in there as they will be generated automatically once a pull request is merged"
echo "List all the files that have changed: ${{ steps.changed-files.outputs.all_changed_files }}"
exit 1
30 changes: 14 additions & 16 deletions .github/workflows/node.yml → .github/workflows/npm-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT

name: Node
name: Build Javascript

on: pull_request

Expand Down Expand Up @@ -35,17 +35,14 @@ jobs:
filters: |
src:
- '.github/workflows/**'
- '**/src/**'
- '**/appinfo/info.xml'
- 'core/css/*'
- 'core/img/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- '**/package-lock.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
- 'version.php'

build:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -90,16 +87,17 @@ jobs:
npm ci
npm run build --if-present

- name: Check build changes
run: |
bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)"
# Not used as we compile on CI, see update-node-dist.yml and node-dist-unchanged.yml
# - name: Check build changes
# run: |
# bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)"

- name: Show changes on failure
if: failure()
run: |
git status
git --no-pager diff
exit 1 # make it red to grab attention
# - name: Show changes on failure
# if: failure()
# run: |
# git status
# git --no-pager diff
# exit 1 # make it red to grab attention

summary:
permissions:
Expand Down
84 changes: 84 additions & 0 deletions .github/workflows/update-node-dist.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later

name: Update Node dist

on:
workflow_dispatch:
push:
branches:
# implemented since 35, once branched off, add your stable branch here
- master

permissions:
contents: write

concurrency:
group: update-node-dist-${{ github.head_ref || github.ref || github.run_id }}

jobs:
update-node-dist:
runs-on: ubuntu-latest
environment: update-node-dist

steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
# Needed to allow force push later
persist-credentials: true
token: ${{ secrets.BOT_GITHUB_TOKEN }}

- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.1
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^9'

- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
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: Setup git
run: |
git config --local user.email "nextcloud-command@users.noreply.github.com"
git config --local user.name "nextcloud-command"

- name: Get last commit message if it was not a recompile
id: last_commit
run: |
{
echo 'MESSAGE<<EOF'
git log -1 --pretty=%s | grep -v '^chore(assets): recompile assets$' || test $? -eq 1
echo 'EOF'
} >> $GITHUB_OUTPUT

- name: Install dependencies & build
if: steps.last_commit.outputs.MESSAGE != ''
env:
CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
npm run build --if-present

- name: Check webpack build changes
id: changes
continue-on-error: true
run: |
{
echo 'CHANGED<<EOF'
git status --porcelain
echo 'EOF'
} >> "$GITHUB_OUTPUT"

- name: Add and commit
if: steps.changes.outputs.CHANGED != ''
run: |
git add --force dist/ core/css/
git commit --signoff -m 'chore(assets): recompile assets'
git push origin ${{ github.head_ref }}
Loading