Skip to content

Commit

Permalink
Merge branch 'master' into bugfix-page
Browse files Browse the repository at this point in the history
  • Loading branch information
yuluo-yx authored Aug 27, 2024
2 parents 5f7f21e + 6e430bc commit 681ff41
Show file tree
Hide file tree
Showing 12 changed files with 293 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.

Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
/*
* 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.
*/

package org.apache.hertzbeat.push.dao;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import org.apache.hertzbeat.common.entity.push.PushMetrics;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension;

/**
* test case for {@link PushMetricsDao}
*/

@ExtendWith(MockitoExtension.class)
public class PushMetricsDaoTest {
@Mock
private PushMetricsDao pushMetricsDao;

@InjectMocks
private PushMetricsDaoTest pushMetricsDaoTest;

@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
}

@Test
void shallFindFirstByMonitorIdOrderByTimeDesc() {

PushMetrics expectedMetrics = new PushMetrics();
expectedMetrics.setMonitorId(1L);
expectedMetrics.setTime(System.currentTimeMillis());

when(pushMetricsDao.findFirstByMonitorIdOrderByTimeDesc(1L)).thenReturn(expectedMetrics);

PushMetrics actualMetrics = pushMetricsDao.findFirstByMonitorIdOrderByTimeDesc(1L);

assertEquals(expectedMetrics, actualMetrics);
verify(pushMetricsDao, times(1)).findFirstByMonitorIdOrderByTimeDesc(1L);
}

@Test
void shallDeleteAllByTimeBefore() {

doNothing().when(pushMetricsDao).deleteAllByTimeBefore(anyLong());

pushMetricsDao.deleteAllByTimeBefore(1000L);

verify(pushMetricsDao, times(1)).deleteAllByTimeBefore(1000L);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/*
* 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.
*/

package org.apache.hertzbeat.push.dao;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.util.Optional;

import org.apache.hertzbeat.common.entity.manager.Monitor;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension;

/**
* test case for {@link PushMonitorDao}
*/

@ExtendWith(MockitoExtension.class)
public class PushMonitorDaoTest {
@Mock
private PushMonitorDao pushMonitorDao;

@InjectMocks
private PushMonitorDaoTest pushMonitorDaoTest;

@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
}

@Test
void shallSaveMonitor() {

Monitor monitor = new Monitor();
monitor.setId(1L);
monitor.setName("Test Monitor");

when(pushMonitorDao.save(any(Monitor.class))).thenReturn(monitor);

Monitor savedMonitor = pushMonitorDao.save(monitor);

assertEquals(monitor, savedMonitor);
verify(pushMonitorDao, times(1)).save(monitor);
}

@Test
void shallFindById() {
Monitor monitor = new Monitor();
monitor.setId(1L);
monitor.setName("Test Monitor");

when(pushMonitorDao.findById(1L)).thenReturn(Optional.of(monitor));

Optional<Monitor> foundMonitor = pushMonitorDao.findById(1L);

assertTrue(foundMonitor.isPresent());
assertEquals(monitor, foundMonitor.get());
verify(pushMonitorDao, times(1)).findById(1L);
}

@Test
void shallDeleteById() {
doNothing().when(pushMonitorDao).deleteById(1L);

pushMonitorDao.deleteById(1L);

verify(pushMonitorDao, times(1)).deleteById(1L);
}
}
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"
]
}
Loading

0 comments on commit 681ff41

Please sign in to comment.