From 35e519366bc8cae13f453064e85760bd03086f72 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Thu, 5 Mar 2026 17:23:08 +0100 Subject: [PATCH 1/9] GHA creation Signed-off-by: fantonangeli --- .../workflows/ci_check_license_headers.yaml | 55 +++++++++++++++++++ .rat-excludes | 9 +++ 2 files changed, 64 insertions(+) create mode 100644 .github/workflows/ci_check_license_headers.yaml create mode 100644 .rat-excludes diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml new file mode 100644 index 0000000..d23029e --- /dev/null +++ b/.github/workflows/ci_check_license_headers.yaml @@ -0,0 +1,55 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +name: "CI :: License headers" + +on: + push: + branches: [main] + pull_request: + branches: ["**"] + types: [opened, reopened, ready_for_review, synchronize] + +env: + APACHE_RAT_VERSION: 0.17 + +jobs: + check: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Download Apache RAT + run: | + curl -LO "https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${APACHE_RAT_VERSION}/apache-rat-${APACHE_RAT_VERSION}.jar" + + - name: Run Apache RAT + run: | + # Redirect output to .rat-reports file, continue even if RAT returns non-zero exit code because we want to print Unapproved documents + java -jar apache-rat-${APACHE_RAT_VERSION}.jar --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true + if grep -q "^! Unapproved:" .rat-reports; then + echo "❌ Apache RAT check FAILED - Files with unapproved licenses found:" + echo "" + grep "^! /" .rat-reports + exit 1 + else + echo "✅ Apache RAT check PASSED - All files have approved licenses." + fi diff --git a/.rat-excludes b/.rat-excludes new file mode 100644 index 0000000..14c2ed8 --- /dev/null +++ b/.rat-excludes @@ -0,0 +1,9 @@ +.gitattributes +.npmrc +.prettierignore +.rat-excludes +.rat-reports +pnpm-lock.yaml +pnpm-workspace.yaml +repo/graph.dot +repo/repo.iml From c6144751dc4dfe074c99bbeafb1411fcebeba446 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Thu, 5 Mar 2026 17:23:54 +0100 Subject: [PATCH 2/9] fix missing license Signed-off-by: fantonangeli --- .gitignore | 18 ++++++++++++++++++ README.md | 17 +++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/.gitignore b/.gitignore index 9a5aced..55d419b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,21 @@ +### +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + # Logs logs *.log diff --git a/README.md b/README.md index dd92ad0..95e4a13 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,19 @@ + + # editor CNCF Serverless Workflow Specification Visual Editor From 68eca735a9d70619111bb1a1fa48229103c82959 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Fri, 6 Mar 2026 18:19:05 +0100 Subject: [PATCH 3/9] Fixes comment: https://github.com/serverlessworkflow/editor/pull/27#discussion_r2891123913 Signed-off-by: fantonangeli --- .../workflows/ci_check_license_headers.yaml | 25 ++++++++--------- .gitignore | 28 +++++++++---------- README.md | 27 +++++++++--------- 3 files changed, 37 insertions(+), 43 deletions(-) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index d23029e..2032fed 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -1,20 +1,17 @@ # -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at +# Copyright 2021-Present The Serverless Workflow Specification Authors # -# http://www.apache.org/licenses/LICENSE-2.0 +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # name: "CI :: License headers" diff --git a/.gitignore b/.gitignore index 55d419b..39cd20d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,18 @@ -### -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# Copyright 2021-Present The Serverless Workflow Specification Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. # Logs logs diff --git a/README.md b/README.md index 95e4a13..aac375d 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,17 @@ # editor From b095ee2ad4c14b42a9269b39ecd918bf279369af Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Fri, 6 Mar 2026 19:39:04 +0100 Subject: [PATCH 4/9] Fix copilot comments Signed-off-by: fantonangeli --- .../workflows/ci_check_license_headers.yaml | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index 2032fed..0df84e1 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -34,14 +34,38 @@ jobs: - name: Checkout code uses: actions/checkout@v3 + - name: "Setup JDK 17" + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: "temurin" + - name: Download Apache RAT run: | - curl -LO "https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${APACHE_RAT_VERSION}/apache-rat-${APACHE_RAT_VERSION}.jar" + set -e + BASE_URL="https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${APACHE_RAT_VERSION}" + APACHE_RAT_JAR="apache-rat-${APACHE_RAT_VERSION}.jar" + APACHE_RAT_SHA="apache-rat-${APACHE_RAT_VERSION}.jar.sha1" + + # Download JAR and corresponding SHA-1 checksum + curl -LO "${BASE_URL}/${APACHE_RAT_JAR}" + curl -LO "${BASE_URL}/${APACHE_RAT_SHA}" + + # Verify the downloaded JAR against the published checksum + EXPECTED_SHA1="$(awk '{print $1}' $APACHE_RAT_SHA)" + ACTUAL_SHA1="$(sha1sum $APACHE_RAT_JAR| awk '{print $1}')" + if [ "${EXPECTED_SHA1}" != "${ACTUAL_SHA1}" ]; then + echo "Checksum verification FAILED for ${APACHE_RAT_JAR}" >&2 + exit 1 + fi + rm $APACHE_RAT_SHA - name: Run Apache RAT run: | + APACHE_RAT_JAR="apache-rat-${APACHE_RAT_VERSION}.jar" + # Redirect output to .rat-reports file, continue even if RAT returns non-zero exit code because we want to print Unapproved documents - java -jar apache-rat-${APACHE_RAT_VERSION}.jar --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true + java -jar $APACHE_RAT_JAR --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true if grep -q "^! Unapproved:" .rat-reports; then echo "❌ Apache RAT check FAILED - Files with unapproved licenses found:" echo "" From b3ac5f0d112bf111cb3ff835a6c50c08971bf557 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 9 Mar 2026 12:12:27 +0100 Subject: [PATCH 5/9] Fix comment https://github.com/serverlessworkflow/editor/pull/27#discussion_r2896956136 Signed-off-by: fantonangeli --- .github/workflows/ci_check_license_headers.yaml | 11 +++++++++++ .gitignore | 3 +++ 2 files changed, 14 insertions(+) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index 0df84e1..fe5f14f 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -64,8 +64,19 @@ jobs: run: | APACHE_RAT_JAR="apache-rat-${APACHE_RAT_VERSION}.jar" + rm -f .rat-reports + # Redirect output to .rat-reports file, continue even if RAT returns non-zero exit code because we want to print Unapproved documents java -jar $APACHE_RAT_JAR --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true + + # Verify that RAT ran successfully by checking for its summary output + if ! grep -q "Summary" .rat-reports; then + echo "❌ Apache RAT check FAILED - RAT did not complete successfully" >&2 + cat .rat-reports + exit 1 + fi + + # Check for unapproved licenses if grep -q "^! Unapproved:" .rat-reports; then echo "❌ Apache RAT check FAILED - Files with unapproved licenses found:" echo "" diff --git a/.gitignore b/.gitignore index 39cd20d..1f7537b 100644 --- a/.gitignore +++ b/.gitignore @@ -153,3 +153,6 @@ dist # Vite logs files vite.config.js.timestamp-* vite.config.ts.timestamp-* + +# Apache RAT +.rat-reports From 22bfafc1c30d94d53f1a6d556c216e4bf2117db1 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 9 Mar 2026 16:01:04 +0100 Subject: [PATCH 6/9] Updated actions version Signed-off-by: fantonangeli --- .github/workflows/ci_check_license_headers.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index fe5f14f..aa9f5d5 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -32,10 +32,10 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: "Setup JDK 17" - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: java-version: 17 distribution: "temurin" From b088800da7da022025e17d36d3f8b04f4544f58e Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 9 Mar 2026 17:17:49 +0100 Subject: [PATCH 7/9] Fixes comment: https://github.com/serverlessworkflow/editor/pull/27/changes#r2897289283 Signed-off-by: fantonangeli --- .github/workflows/ci_check_license_headers.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index aa9f5d5..a18f7a3 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -46,28 +46,32 @@ jobs: BASE_URL="https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${APACHE_RAT_VERSION}" APACHE_RAT_JAR="apache-rat-${APACHE_RAT_VERSION}.jar" APACHE_RAT_SHA="apache-rat-${APACHE_RAT_VERSION}.jar.sha1" + APACHE_RAT_DIR="${RUNNER_TEMP:-/tmp}" + + mkdir -p "${APACHE_RAT_DIR}" + cd "${APACHE_RAT_DIR}" # Download JAR and corresponding SHA-1 checksum curl -LO "${BASE_URL}/${APACHE_RAT_JAR}" curl -LO "${BASE_URL}/${APACHE_RAT_SHA}" # Verify the downloaded JAR against the published checksum - EXPECTED_SHA1="$(awk '{print $1}' $APACHE_RAT_SHA)" - ACTUAL_SHA1="$(sha1sum $APACHE_RAT_JAR| awk '{print $1}')" + EXPECTED_SHA1="$(awk '{print $1}' "${APACHE_RAT_SHA}")" + ACTUAL_SHA1="$(sha1sum "${APACHE_RAT_JAR}" | awk '{print $1}')" if [ "${EXPECTED_SHA1}" != "${ACTUAL_SHA1}" ]; then echo "Checksum verification FAILED for ${APACHE_RAT_JAR}" >&2 exit 1 fi - rm $APACHE_RAT_SHA + rm "${APACHE_RAT_SHA}" - name: Run Apache RAT run: | - APACHE_RAT_JAR="apache-rat-${APACHE_RAT_VERSION}.jar" + APACHE_RAT_JAR="${RUNNER_TEMP:-/tmp}/apache-rat-${APACHE_RAT_VERSION}.jar" rm -f .rat-reports # Redirect output to .rat-reports file, continue even if RAT returns non-zero exit code because we want to print Unapproved documents - java -jar $APACHE_RAT_JAR --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true + java -jar "$APACHE_RAT_JAR" --input-exclude-file .rat-excludes -- . > .rat-reports 2>&1 || true # Verify that RAT ran successfully by checking for its summary output if ! grep -q "Summary" .rat-reports; then From 8c73f46baa7392c2d6bc127a9fa4cc56e1c33394 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 9 Mar 2026 18:07:32 +0100 Subject: [PATCH 8/9] Fixes comment: https://github.com/serverlessworkflow/editor/pull/27/changes#r2897676663 Signed-off-by: fantonangeli --- .github/workflows/ci_check_license_headers.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index a18f7a3..ff35f10 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -40,7 +40,15 @@ jobs: java-version: 17 distribution: "temurin" + - name: Cache Apache RAT + uses: actions/cache@v4 + id: cache-rat + with: + path: ${{ runner.temp }}/apache-rat-${{ env.APACHE_RAT_VERSION }}.jar + key: apache-rat-${{ env.APACHE_RAT_VERSION }} + - name: Download Apache RAT + if: steps.cache-rat.outputs.cache-hit != 'true' run: | set -e BASE_URL="https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${APACHE_RAT_VERSION}" From 0b6dce48fe1cfee8b512c2949087b747b3e2506a Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 9 Mar 2026 18:13:19 +0100 Subject: [PATCH 9/9] Update action/cache Signed-off-by: fantonangeli --- .github/workflows/ci_check_license_headers.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_check_license_headers.yaml b/.github/workflows/ci_check_license_headers.yaml index ff35f10..a33fbd0 100644 --- a/.github/workflows/ci_check_license_headers.yaml +++ b/.github/workflows/ci_check_license_headers.yaml @@ -41,7 +41,7 @@ jobs: distribution: "temurin" - name: Cache Apache RAT - uses: actions/cache@v4 + uses: actions/cache@v5 id: cache-rat with: path: ${{ runner.temp }}/apache-rat-${{ env.APACHE_RAT_VERSION }}.jar