mirror of
https://github.com/SamyRai/turash.git
synced 2025-12-26 23:01:33 +00:00
Some checks failed
CI/CD Pipeline / backend-lint (push) Failing after 29s
CI/CD Pipeline / backend-build (push) Has been skipped
CI/CD Pipeline / frontend-lint (push) Successful in 1m41s
CI/CD Pipeline / frontend-build (push) Failing after 27s
CI/CD Pipeline / e2e-test (push) Has been skipped
- Rename step to "Install CGO dependencies" and enhance the installation process for GCC - Implement robust checks for GCC availability and installation verification - Set CGO_ENABLED to 0 for all relevant steps to ensure compatibility with non-CGO builds
207 lines
6.6 KiB
YAML
207 lines
6.6 KiB
YAML
name: CI/CD Pipeline
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- 'bugulma/**'
|
|
- 'k8s/**'
|
|
- '.gitea/workflows/**'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- 'bugulma/**'
|
|
- 'k8s/**'
|
|
|
|
jobs:
|
|
frontend-lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '24'
|
|
- name: Enable Corepack (for Yarn)
|
|
run: corepack enable
|
|
- name: Install dependencies
|
|
working-directory: bugulma/frontend
|
|
run: yarn install --immutable
|
|
- name: Lint
|
|
working-directory: bugulma/frontend
|
|
run: yarn lint
|
|
- name: Test
|
|
working-directory: bugulma/frontend
|
|
run: yarn test --run
|
|
|
|
frontend-build:
|
|
runs-on: ubuntu-latest
|
|
needs: frontend-lint
|
|
if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/master'
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Build and push frontend with Kaniko
|
|
uses: aevea/action-kaniko@v0.9.0
|
|
with:
|
|
registry: registry.bk.glpx.pro
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
image: turash/turash-frontend
|
|
tag: latest,${{ gitea.sha }}
|
|
cache: true
|
|
cache_registry: registry.bk.glpx.pro/turash/turash-frontend
|
|
context: bugulma/frontend
|
|
dockerfile: bugulma/frontend/Dockerfile
|
|
kaniko_executor_image: gcr.io/kaniko-project/executor:debug-v1.24.0
|
|
|
|
backend-lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.25.3'
|
|
cache: true
|
|
- name: Install CGO dependencies
|
|
run: |
|
|
set -e
|
|
echo "Checking for gcc..."
|
|
# Check if gcc is available
|
|
if command -v gcc &> /dev/null; then
|
|
echo "✓ gcc is already available"
|
|
gcc --version
|
|
else
|
|
echo "gcc not found, installing build-essential..."
|
|
# Install build-essential which includes gcc
|
|
# Check if we're root (common in CI environments)
|
|
if [ "$(id -u)" -eq 0 ]; then
|
|
echo "Running as root, installing directly..."
|
|
apt-get update
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential
|
|
else
|
|
echo "Not root, trying with sudo..."
|
|
sudo apt-get update || apt-get update
|
|
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y build-essential || \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential
|
|
fi
|
|
# Verify installation - check common locations
|
|
if command -v gcc &> /dev/null; then
|
|
echo "✓ gcc successfully installed"
|
|
gcc --version
|
|
elif [ -f /usr/bin/gcc ]; then
|
|
echo "✓ gcc found at /usr/bin/gcc"
|
|
/usr/bin/gcc --version
|
|
export PATH="/usr/bin:$PATH"
|
|
else
|
|
echo "✗ gcc installation verification failed"
|
|
echo "PATH: $PATH"
|
|
echo "Searching for gcc..."
|
|
find /usr -name gcc 2>/dev/null | head -5 || echo "gcc not found in /usr"
|
|
exit 1
|
|
fi
|
|
fi
|
|
# Final verification
|
|
echo "Final gcc check:"
|
|
gcc --version || /usr/bin/gcc --version || (echo "ERROR: gcc still not found" && exit 1)
|
|
- name: Install dependencies
|
|
working-directory: bugulma/backend
|
|
run: go mod download
|
|
env:
|
|
GO111MODULE: on
|
|
CGO_ENABLED: 1
|
|
GOPROXY: https://proxy.golang.org,direct
|
|
GOSUMDB: sum.golang.org
|
|
- name: Tidy and verify modules
|
|
working-directory: bugulma/backend
|
|
run: |
|
|
go mod tidy
|
|
go mod verify
|
|
env:
|
|
GO111MODULE: on
|
|
CGO_ENABLED: 0
|
|
GOPROXY: https://proxy.golang.org,direct
|
|
GOSUMDB: sum.golang.org
|
|
- name: Verify module setup
|
|
working-directory: bugulma/backend
|
|
run: |
|
|
pwd
|
|
ls -la go.mod
|
|
go list -m
|
|
# Verify all packages can be listed
|
|
go list ./...
|
|
env:
|
|
GO111MODULE: on
|
|
CGO_ENABLED: 0
|
|
GOPROXY: https://proxy.golang.org,direct
|
|
GOSUMDB: sum.golang.org
|
|
- name: Build module to populate cache
|
|
working-directory: bugulma/backend
|
|
run: go build ./...
|
|
env:
|
|
GO111MODULE: on
|
|
CGO_ENABLED: 0
|
|
GOPROXY: https://proxy.golang.org,direct
|
|
GOSUMDB: sum.golang.org
|
|
- name: Vet
|
|
working-directory: bugulma/backend
|
|
run: go vet ./...
|
|
env:
|
|
GO111MODULE: on
|
|
CGO_ENABLED: 0
|
|
GOPROXY: https://proxy.golang.org,direct
|
|
GOSUMDB: sum.golang.org
|
|
- name: Test
|
|
working-directory: bugulma/backend
|
|
run: go test -v -race -coverprofile=coverage.out ./...
|
|
env:
|
|
GO111MODULE: on
|
|
CGO_ENABLED: 1
|
|
GOPROXY: https://proxy.golang.org,direct
|
|
GOSUMDB: sum.golang.org
|
|
- name: Coverage
|
|
working-directory: bugulma/backend
|
|
run: go tool cover -html=coverage.out -o coverage.html
|
|
|
|
backend-build:
|
|
runs-on: ubuntu-latest
|
|
needs: backend-lint
|
|
if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/master'
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Build and push backend with Kaniko
|
|
uses: aevea/action-kaniko@v0.9.0
|
|
with:
|
|
registry: registry.bk.glpx.pro
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
image: turash/turash-backend
|
|
tag: latest,${{ gitea.sha }}
|
|
cache: true
|
|
cache_registry: registry.bk.glpx.pro/turash/turash-backend
|
|
context: bugulma/backend
|
|
dockerfile: bugulma/backend/Dockerfile
|
|
kaniko_executor_image: gcr.io/kaniko-project/executor:debug-v1.24.0
|
|
|
|
e2e-test:
|
|
runs-on: ubuntu-latest
|
|
needs: [frontend-build, backend-build]
|
|
if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/master'
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '24'
|
|
- name: Enable Corepack (for Yarn)
|
|
run: corepack enable
|
|
- name: Install dependencies
|
|
working-directory: bugulma/frontend
|
|
run: yarn install --immutable
|
|
- name: Run E2E tests
|
|
working-directory: bugulma/frontend
|
|
run: yarn test:e2e --headed=false
|
|
|