Skip to content

build(deps): bump fluent/fluent-bit from 4.0.10 to 4.0.11 #474

build(deps): bump fluent/fluent-bit from 4.0.10 to 4.0.11

build(deps): bump fluent/fluent-bit from 4.0.10 to 4.0.11 #474

Workflow file for this run

name: CI Status Check - DISABLED (PR 176 TIMEOUT FIX)
# EMERGENCY DISABLE: This workflow was causing 5-minute timeouts during dependency download
# Root cause: 728 dependencies (~90MB) cannot download in 8-minute job timeout
#
# REPLACED BY: nephoran-ci-2025-production.yml (consolidated pipeline)
# - 25-minute timeout for large dependency trees
# - Multi-layer caching with fallbacks
# - Retry mechanisms for reliability
# - Eliminates workflow conflicts from 38+ competing workflows
# DISABLED: Emergency fix for PR 176 CI failure cascade
on:
# EMERGENCY DISABLED - causing timeout failures
# Original triggers moved to nephoran-ci-2025-production.yml
workflow_dispatch:
inputs:
emergency_enable:
description: 'Emergency re-enable (use nephoran-ci-2025-production.yml instead)'
type: boolean
default: false
# ORIGINAL TRIGGERS (moved to consolidated workflow):
# pull_request:
# types: [opened, synchronize, reopened]
# branches:
# - main
# - integrate/**
# paths:
# - '**.go'
# - 'go.mod'
# - 'go.sum'
concurrency:
group: ci-status-${{ github.ref }}
cancel-in-progress: true
env:
<<<<<<< HEAD

Check failure on line 38 in .github/workflows/ci-optimized.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci-optimized.yml

Invalid workflow file

You have an error in your yaml syntax on line 38
GO_VERSION: "1.24.0" # Latest stable Go version (2025 best practice)
=======
GO_VERSION: "1.24.6" # Latest stable Go version (2025 best practice)
>>>>>>> 6835433495e87288b95961af7173d866977175ff
GOPROXY: "https://proxy.golang.org,direct"
GOSUMDB: "sum.golang.org"
CGO_ENABLED: "0"
GOMAXPROCS: "4"
GOMEMLIMIT: "4GiB"
GOGC: "100"
jobs:
# Stage 1: Quick validation (2-3 minutes)
quick-check:
name: Quick Validation
runs-on: ubuntu-latest
timeout-minutes: 10 # Increased for reliability
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Go with cache
uses: actions/setup-go@v5
with:
go-version: '${{ env.GO_VERSION }}' # Use env variable for consistency
cache: true
cache-dependency-path: go.sum
- name: Verify Go installation
run: |
set -e # Bash strict mode - fail on any error
go version
go env
- name: Cache Go modules
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Fail-fast syntax check
timeout-minutes: 10
run: |
set -e # Bash strict mode - fail on any error
echo "Running fail-fast syntax check..."
echo "Downloading dependencies first..."
go mod download
echo "Running syntax check..."
go build ./...
go vet ./...
- name: Quick dependency check
timeout-minutes: 10
run: |
set -e # Bash strict mode - fail on any error
echo "Downloading dependencies..."
go mod download -x
go mod verify
# Stage 2: Parallel builds with chunking
build:
name: Build Components
needs: quick-check
runs-on: ubuntu-latest
timeout-minutes: 10 # Increased for reliability
strategy:
fail-fast: false
matrix:
component:
- cmd
- controllers
- pkg
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go with cache
uses: actions/setup-go@v5
with:
go-version: '${{ env.GO_VERSION }}' # Use env variable for consistency
cache: true
cache-dependency-path: go.sum
- name: Setup build cache
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ matrix.component }}-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-${{ matrix.component }}-
${{ runner.os }}-go-
- name: Build ${{ matrix.component }}
timeout-minutes: 10 # Increased timeout
run: |
set -e # Bash strict mode - fail on any error
echo "Building ${{ matrix.component }}..."
# Use optimized CI build script for core components
if [ "${{ matrix.component }}" == "cmd" ]; then
if [ -f "scripts/ci-build.sh" ]; then
chmod +x scripts/ci-build.sh
./scripts/ci-build.sh
else
echo "Building cmd components..."
go build -p=4 -mod=readonly -trimpath \
-ldflags="-s -w" -gcflags="-l=4" \
-tags="fast_build" \
./cmd/...
fi
else
case "${{ matrix.component }}" in
controllers)
# Build controllers with timeout and better error handling
echo "Building controllers..."
timeout 300 go build -p=4 -mod=readonly -trimpath \
-ldflags="-s -w" -gcflags="-l=4" \
-tags="fast_build" \
./controllers/...
;;
pkg)
# Build only critical pkg directories to avoid timeout
for pkg_dir in pkg/context pkg/clients pkg/nephio; do
if [ -d "$pkg_dir" ]; then
echo "Building $pkg_dir..."
timeout 120 go build -p=4 -mod=readonly -trimpath \
-ldflags="-s -w" -gcflags="-l=4" \
-tags="fast_build" \
./$pkg_dir/...
fi
done
;;
esac
fi
- name: Upload artifacts
if: matrix.component == 'cmd'
uses: actions/upload-artifact@v4
with:
name: binaries-${{ matrix.component }}
path: bin/
retention-days: 1
# Stage 3: Parallel testing with timeout protection
test:
name: Test Suite
needs: build
runs-on: ubuntu-latest
timeout-minutes: 10 # Increased for reliability
strategy:
fail-fast: false
matrix:
package:
- pkg
- internal
- controllers
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go with cache
uses: actions/setup-go@v5
with:
go-version: '${{ env.GO_VERSION }}' # Use env variable for consistency
cache: true
cache-dependency-path: go.sum
- name: Setup test cache
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-gotest-${{ matrix.package }}-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-gotest-${{ matrix.package }}-
${{ runner.os }}-gotest-
- name: Run tests for ${{ matrix.package }}
timeout-minutes: 10 # Increased timeout
run: |
set -e # Bash strict mode - fail on any error
echo "Testing ${{ matrix.package }}..."
if [ -d "${{ matrix.package }}" ]; then
go test -short -p=8 -short -timeout=5m \
-tags="fast_build" \
-coverprofile=coverage-${{ matrix.package }}.out \
./${{ matrix.package }}/...
else
echo "Package ${{ matrix.package }} not found, skipping tests"
# Create empty coverage file to avoid upload errors
touch coverage-${{ matrix.package }}.out
fi
- name: Upload coverage
uses: actions/upload-artifact@v4
with:
name: coverage-${{ matrix.package }}
path: coverage-${{ matrix.package }}.out
retention-days: 1
# Stage 4: Quick integration test
integration:
name: Integration Check
needs: [build, test]
runs-on: ubuntu-latest
timeout-minutes: 10 # Increased timeout
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '${{ env.GO_VERSION }}' # Use env variable for consistency
cache: true
- name: Download binaries
uses: actions/download-artifact@v4
with:
name: binaries-cmd
path: bin/
continue-on-error: true # Don't fail if no artifacts exist
- name: Quick integration test
timeout-minutes: 10
run: |
set -e # Bash strict mode - fail on any error
echo "Running quick integration check..."
if [ -d "bin" ] && [ "$(ls -A bin 2>/dev/null)" ]; then
echo "Found binaries in bin/ directory"
chmod +x bin/* || echo "No executables found in bin/"
# Just verify binaries exist and can show version/help
for binary in bin/*; do
if [ -x "$binary" ]; then
name=$(basename $binary)
echo "Checking $name..."
# Remove silent failure - let timeout handle errors properly
if timeout 15 $binary --help >/dev/null 2>&1; then
echo "$name supports --help"
elif timeout 15 $binary version >/dev/null 2>&1; then
echo "$name supports version"
else
echo "$name does not support --help or version (this is OK)"
fi
fi
done
else
echo "No binaries found to test - this may be expected for this component structure"
fi
# Final status check
ci-status:
name: CI Status
needs: [quick-check, build, test, integration]
runs-on: ubuntu-latest
timeout-minutes: 10
if: always()
steps:
- name: Check CI Status
run: |
set -e # Bash strict mode - fail on any error
echo "Checking individual job results..."
echo "Quick check: ${{ needs.quick-check.result }}"
echo "Build: ${{ needs.build.result }}"
echo "Test: ${{ needs.test.result }}"
echo "Integration: ${{ needs.integration.result }}"
if [ "${{ needs.quick-check.result }}" == "failure" ] || \
[ "${{ needs.build.result }}" == "failure" ] || \
[ "${{ needs.test.result }}" == "failure" ] || \
[ "${{ needs.integration.result }}" == "failure" ]; then
echo "CI pipeline failed - one or more jobs failed"
exit 1
fi
echo "CI pipeline passed successfully!"