Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
34a4953
refactor: replace Boost filesystem with std::filesystem across the co…
Takuka0311 Feb 10, 2026
aa27b6c
refactor: transition from Boost to std::filesystem in FileSystemUtil …
Takuka0311 Feb 10, 2026
75b77a4
chore: remove E2EWithDockerEngineVersions job from e2e.yaml workflow
Takuka0311 Feb 10, 2026
b788862
Merge remote-tracking branch 'origin/main' into input-static-file-one…
Takuka0311 Feb 10, 2026
7a2e494
refactor: replace Boost filesystem with std::filesystem in ModifyHand…
Takuka0311 Feb 10, 2026
e47c5a7
refactor: remove unused flags and clean up code in logtail and AppConfig
Takuka0311 Feb 11, 2026
917b0e5
refactor: enhance container management and file server integration
Takuka0311 Feb 14, 2026
3bb2cb6
refactor: introduce AddInputWithoutStartingThread method for improved…
Takuka0311 Feb 14, 2026
09e9aef
Merge remote-tracking branch 'origin/main' into input-static-file-one…
Takuka0311 Mar 3, 2026
fca9883
fix: correct condition in UpdateInputs method of StaticFileServer
Takuka0311 Mar 3, 2026
c6dae6b
fix ut
Takuka0311 Mar 3, 2026
c18f187
add e2e
Takuka0311 Mar 3, 2026
5b6523a
fix e2e
Takuka0311 Mar 3, 2026
3de9c29
refactor: enhance StaticFileServer input handling and update Docker c…
Takuka0311 Mar 4, 2026
e63d54a
Merge remote-tracking branch 'origin/main' into input-static-file-one…
Takuka0311 Mar 10, 2026
7fcf927
Merge remote-tracking branch 'origin/main' into input-static-file-one…
Takuka0311 Mar 23, 2026
c7b193c
Refactor StaticFileServer for improved locking and input handling
Takuka0311 Mar 24, 2026
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
138 changes: 1 addition & 137 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -154,144 +154,8 @@ jobs:
run: |
./scripts/e2e.sh e2e

# E2E测试 - Docker Engine版本兼容性测试
E2EWithDockerEngineVersions:
runs-on: ubuntu-22.04
needs:
- GenerateE2ETestImage
strategy:
matrix:
docker_engine_version: ["29.1", "28.5", "27.5", "26.1", "25.0", "24.0", "23.0", "20.10"]
test_case: ["input_container_stdio", "input_docker_static_file"]
fail-fast: false
timeout-minutes: 60
steps:
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 1.23.12

- name: Check out code
uses: actions/checkout@v4
with:
submodules: false

- name: Install Docker Engine ${{ matrix.docker_engine_version }}
run: |
# 移除现有的docker(包括docker-ce)
sudo apt-get remove -y docker docker-engine docker.io docker-ce docker-ce-cli containerd runc 2>/dev/null || true
sudo apt-get purge -y docker docker-engine docker.io docker-ce docker-ce-cli containerd runc 2>/dev/null || true

# 安装依赖
sudo apt-get update
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release \
apt-transport-https

# 添加Docker官方GPG密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 设置Docker仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新包列表
sudo apt-get update

# 根据版本号确定要安装的版本
VERSION="${{ matrix.docker_engine_version }}"

# 查找可用的docker-ce版本
AVAILABLE_VERSIONS=$(apt-cache madison docker-ce | awk '{print $3}' | sort -V)
echo "Available Docker CE versions:"
echo "$AVAILABLE_VERSIONS"

# 根据主版本号匹配
MAJOR=$(echo $VERSION | cut -d. -f1)
MINOR=$(echo $VERSION | cut -d. -f2)

# 查找匹配的版本,选择最高的小版本
MATCHED_VERSION=$(echo "$AVAILABLE_VERSIONS" | grep "^5:$MAJOR\.$MINOR\." | tail -1)

if [ -z "$MATCHED_VERSION" ]; then
# 如果找不到精确匹配,尝试匹配主版本号,选择最高版本
MATCHED_VERSION=$(echo "$AVAILABLE_VERSIONS" | grep "^5:$MAJOR\." | tail -1)
fi

if [ -n "$MATCHED_VERSION" ]; then
echo "Installing Docker CE version: $MATCHED_VERSION"
sudo apt-get install -y --allow-downgrades docker-ce=$MATCHED_VERSION docker-ce-cli=$MATCHED_VERSION containerd.io
else
echo "Warning: Exact version $VERSION not found, trying to install latest version in major version $MAJOR"
LATEST_MAJOR=$(echo "$AVAILABLE_VERSIONS" | grep "^5:$MAJOR\." | tail -1)
if [ -n "$LATEST_MAJOR" ]; then
echo "Installing latest available version in major version $MAJOR: $LATEST_MAJOR"
sudo apt-get install -y --allow-downgrades docker-ce=$LATEST_MAJOR docker-ce-cli=$LATEST_MAJOR containerd.io
else
echo "::warning::Docker $VERSION is not available on this Ubuntu version"
echo "Available versions:"
echo "$AVAILABLE_VERSIONS"
echo "Skipping Docker $VERSION test"
exit 0
fi
fi

# 启动Docker服务
sudo systemctl start docker || sudo service docker start
sudo systemctl enable docker || true

# 等待Docker服务就绪
sleep 5

# 输出Docker Engine版本信息
echo "========================================="
echo "Docker Engine Version Information:"
echo "========================================="
docker --version
echo ""
echo "Docker Engine Server Version:"
docker version --format '{{.Server.Version}}'
echo "========================================="

- name: Update Docker-compose to v2
run: |
sudo curl -SL https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

- name: Download Artifact
uses: actions/download-artifact@v4
with:
name: loongcollector-image

- name: Check if Docker is installed
id: check_docker
run: |
if command -v docker &> /dev/null; then
echo "docker_installed=true" >> $GITHUB_OUTPUT
echo "Docker is installed"
else
echo "docker_installed=false" >> $GITHUB_OUTPUT
echo "Docker is not installed, skipping test"
fi

- name: Import Image from Tar
if: steps.check_docker.outputs.docker_installed == 'true'
run: docker load -i ./image.tar

- name: E2E Test with Docker Engine ${{ matrix.docker_engine_version }} - ${{ matrix.test_case }}
if: steps.check_docker.outputs.docker_installed == 'true'
env:
TEST_CASE: ${{ matrix.test_case }}
run: |
./scripts/e2e.sh e2e

actions-timeline:
needs: [E2E, E2EWithDockerEngineVersions]
needs: [E2E]
runs-on: ubuntu-latest
permissions:
actions: read
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/release-edge.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ on:
- "test/**"
- "tools/**"
- "CHANGELOG.md"
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand Down
Loading
Loading