Skip to content

Commit

Permalink
[optimize]: update github action (#2608)
Browse files Browse the repository at this point in the history
Signed-off-by: yuluo-yx <[email protected]>
Signed-off-by: shown <[email protected]>
  • Loading branch information
yuluo-yx authored Aug 27, 2024
1 parent 1799e00 commit 12a53c6
Show file tree
Hide file tree
Showing 10 changed files with 122 additions and 96 deletions.
9 changes: 4 additions & 5 deletions .github/workflows/backend-build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,15 @@ on:
- 'material/**'

jobs:
build:
backend-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- uses: ./script/ci/github-actions/setup-deps

- name: Build with Maven
run: mvn clean -B package -Prelease --file pom.xml

- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
Expand Down
94 changes: 14 additions & 80 deletions .github/workflows/doc-build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,103 +28,37 @@ on:
- 'home/**'

jobs:
build:
docs-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: '3.8'

- name: Check Markdown
uses: DavidAnson/markdownlint-cli2-action@v16
with:
globs: './home/**/*.md'
- name: Check filename in home/blog
run: |
TARGET_DIR="./home/blog"
invalid_files=()
while IFS= read -r -d '' file; do
filename=$(basename "$file")
if [[ ! "$filename" =~ ^[_a-z0-9-]+(\.[_a-z0-9-]+)*$ ]]; then
invalid_files+=("$file")
fi
done < <(find "$TARGET_DIR" -type f -print0)
if [ ${#invalid_files[@]} -ne 0 ]; then
echo "Error: The following files have invalid names:(File name should only contain lowercase letters, numbers, and hyphens.)"
for invalid_file in "${invalid_files[@]}"; do
echo "$invalid_file"
done
exit 1
else
echo "All file names are valid."
fi
- name: Check filename in home/docs
run: |
TARGET_DIR="./home/docs"
invalid_files=()
while IFS= read -r -d '' file; do
filename=$(basename "$file")
if [[ ! "$filename" =~ ^[_a-z0-9-]+(\.[_a-z0-9-]+)*$ ]]; then
invalid_files+=("$file")
fi
done < <(find "$TARGET_DIR" -type f -print0)
if [ ${#invalid_files[@]} -ne 0 ]; then
echo "Error: The following files have invalid names:(File name should only contain lowercase letters, numbers, and hyphens.)"
for invalid_file in "${invalid_files[@]}"; do
echo "$invalid_file"
done
exit 1
else
echo "All file names are valid."
fi
- name: Check filename in /zh-cn/docusaurus-plugin-content-blog
run: |
TARGET_DIR="./home/i18n/zh-cn/docusaurus-plugin-content-blog"
invalid_files=()
while IFS= read -r -d '' file; do
filename=$(basename "$file")
if [[ ! "$filename" =~ ^[_a-z0-9-]+(\.[_a-z0-9-]+)*$ ]]; then
invalid_files+=("$file")
fi
done < <(find "$TARGET_DIR" -type f -print0)
if [ ${#invalid_files[@]} -ne 0 ]; then
echo "Error: The following files have invalid names:(File name should only contain lowercase letters, numbers, and hyphens.)"
for invalid_file in "${invalid_files[@]}"; do
echo "$invalid_file"
done
exit 1
else
echo "All file names are valid."
fi
- name: Check filename in /home/i18n/zh-cn/docusaurus-plugin-content-docs/current
run: |
TARGET_DIR="./home/i18n/zh-cn/docusaurus-plugin-content-docs/current"
invalid_files=()
while IFS= read -r -d '' file; do
filename=$(basename "$file")
if [[ ! "$filename" =~ ^[_a-z0-9-]+(\.[_a-z0-9-]+)*$ ]]; then
invalid_files+=("$file")
fi
done < <(find "$TARGET_DIR" -type f -print0)
if [ ${#invalid_files[@]} -ne 0 ]; then
echo "Error: The following files have invalid names:(File name should only contain lowercase letters, numbers, and hyphens.)"
for invalid_file in "${invalid_files[@]}"; do
echo "$invalid_file"
done
exit 1
else
echo "All file names are valid."
fi
- name: Dead Link

- name: Check filenames
run: python ./script/ci/docs/check_file_name.py ./script/ci/docs/check_file_name.json

- name: Dead Link Check
run: |
sudo npm install -g [email protected]
for file in $(find ./home -name "*.md"); do
if ! grep -Fxq "$file" .github/exclude_files.txt; then
markdown-link-check -c .github/link_check.json -q "$file"
if ! grep -Fxq "$file" ./script/ci/exclude_files.txt; then
markdown-link-check -c ./script/ci/link_check.json -q "$file"
fi
done
- name: NPM INSTALL
working-directory: home
run: npm install

- name: NPM BUILD
working-directory: home
run: npm run build
5 changes: 1 addition & 4 deletions .github/workflows/nightly-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,7 @@ jobs:
if: ${{ github.repository == 'apache/hertzbeat' }}
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- uses: ./script/ci/github-actions/setup-deps

- name: Build the Frontend
run: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ sidebar_label: Download

## Docker 镜像版本

> Apache HertzBeat 为每个版本制作了 Docker 镜像. 你可以从 [Docker Hub](https://hub.docker.com/r/apache/hertzbeat) 拉取使用.
> Apache HertzBeat 为每个版本制作了 Docker 镜像. 您可以从 [Docker Hub](https://hub.docker.com/r/apache/hertzbeat) 拉取使用.
- HertzBeat <https://hub.docker.com/r/apache/hertzbeat>
- HertzBeat Collector <https://hub.docker.com/r/apache/hertzbeat-collector>
5 changes: 0 additions & 5 deletions package.json

This file was deleted.

8 changes: 8 additions & 0 deletions script/ci/docs/check_file_name.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"directories": [
"./home/blog",
"./home/docs",
"./home/i18n/zh-cn/docusaurus-plugin-content-blog",
"./home/i18n/zh-cn/docusaurus-plugin-content-docs/current"
]
}
65 changes: 65 additions & 0 deletions script/ci/docs/check_file_name.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# 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.

import os
import re
import sys
import json

def read_config(file_path):
try:
with open(file_path, 'r') as file:
config = json.load(file)
return config.get("directories", [])
except Exception as e:
print(f"Error reading configuration file: {e}")
sys.exit(1)


def find_invalid_files(directories):
invalid_files = []
pattern = re.compile(r'^[_a-z0-9-]+(\.[_a-z0-9-]+)*$')

for target_dir in directories:
print(f"Checking directory: {target_dir}")
for root, _, files in os.walk(target_dir):
for filename in files:
if not pattern.match(filename):
invalid_files.append(os.path.join(root, filename))

if invalid_files:
print("\nError: The following files have invalid names (file names should only contain lowercase letters, numbers, and hyphens):")
for invalid_file in invalid_files:
print(invalid_file)
sys.exit(1)
else:
print("All file names are valid.")


if __name__ == "__main__":
# usage: python check_filenames.py config.json
if len(sys.argv) != 2:
print("Usage: python xxx_script.py config.json")
sys.exit(1)

config_file = sys.argv[1]
directories = read_config(config_file)
if not directories:
print("\nNo directories found in configuration file.")
sys.exit(1)

find_invalid_files(directories)
2 changes: 1 addition & 1 deletion .github/exclude_files.txt → script/ci/exclude_files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,4 @@
./home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.5.x/others/resource.md
./home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.5.x/start/tdengine-init.md
./home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.4.x/start/tdengine-init.md
./home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/tdengine-init.md
./home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/tdengine-init.md
28 changes: 28 additions & 0 deletions script/ci/github-actions/setup-deps/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# 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: setup-deps
description: Install host system dependencies

runs:
using: composite
steps:
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: 17
File renamed without changes.

0 comments on commit 12a53c6

Please sign in to comment.