init
This commit is contained in:
parent
bb3b7055bc
commit
7cb8f412a9
@ -27,7 +27,7 @@ spec:
|
|||||||
- name: coverage-html
|
- name: coverage-html
|
||||||
description: Comma-separated paths to generated HTML coverage report directories
|
description: Comma-separated paths to generated HTML coverage report directories
|
||||||
steps:
|
steps:
|
||||||
- name: install-dependencies
|
- name: analyze
|
||||||
image: rust:1.75-slim
|
image: rust:1.75-slim
|
||||||
workingDir: /workspace/base/$(params.context)/$(params.source)/$(params.workspaceName)
|
workingDir: /workspace/base/$(params.context)/$(params.source)/$(params.workspaceName)
|
||||||
env:
|
env:
|
||||||
@ -37,12 +37,18 @@ spec:
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
echo "🚀 Starting Rust + Nx Analysis"
|
||||||
|
|
||||||
|
##############################
|
||||||
# Install system dependencies
|
# Install system dependencies
|
||||||
|
##############################
|
||||||
apt-get update && apt-get install -y curl libssl-dev pkg-config build-essential jq
|
apt-get update && apt-get install -y curl libssl-dev pkg-config build-essential jq
|
||||||
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
||||||
apt-get install -y nodejs
|
apt-get install -y nodejs
|
||||||
|
|
||||||
|
##############################
|
||||||
# Install Rust tools
|
# Install Rust tools
|
||||||
|
##############################
|
||||||
rustup component add clippy
|
rustup component add clippy
|
||||||
|
|
||||||
# Install cargo-tarpaulin via prebuilt binary
|
# Install cargo-tarpaulin via prebuilt binary
|
||||||
@ -50,46 +56,46 @@ spec:
|
|||||||
curl -L https://github.com/xd009642/tarpaulin/releases/latest/download/cargo-tarpaulin-x86_64-unknown-linux-gnu.tar.gz | tar xz -C ~/.cargo/bin
|
curl -L https://github.com/xd009642/tarpaulin/releases/latest/download/cargo-tarpaulin-x86_64-unknown-linux-gnu.tar.gz | tar xz -C ~/.cargo/bin
|
||||||
chmod +x ~/.cargo/bin/cargo-tarpaulin
|
chmod +x ~/.cargo/bin/cargo-tarpaulin
|
||||||
|
|
||||||
# Install pnpm
|
##############################
|
||||||
corepack enable
|
# Install pnpm globally
|
||||||
corepack prepare pnpm@10.8.1 --activate
|
##############################
|
||||||
|
npm install -g pnpm@10.8.1
|
||||||
|
|
||||||
|
##############################
|
||||||
# Install Nx dependencies
|
# Install Nx dependencies
|
||||||
|
##############################
|
||||||
pnpm install --frozen-lockfile
|
pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
##############################
|
||||||
# Version checks
|
# Version checks
|
||||||
|
##############################
|
||||||
|
echo "✅ Version Info:"
|
||||||
rustc --version
|
rustc --version
|
||||||
cargo --version
|
cargo --version
|
||||||
node --version
|
node --version
|
||||||
npm --version
|
npm --version
|
||||||
pnpm --version
|
pnpm --version
|
||||||
- name: lint-test-coverage
|
|
||||||
image: rust:1.75-slim
|
|
||||||
workingDir: /workspace/base/$(params.context)/$(params.source)/$(params.workspaceName)
|
|
||||||
env:
|
|
||||||
- name: HOME
|
|
||||||
value: /workspace/base/$(params.context)/home
|
|
||||||
script: |
|
|
||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Lint and Test
|
||||||
|
##############################
|
||||||
export NX_SOCKET_DIR=/tmp/nx-socket
|
export NX_SOCKET_DIR=/tmp/nx-socket
|
||||||
|
|
||||||
# Convert comma-separated targetProjects to space-separated for Bash
|
# Convert comma-separated targetProjects to space-separated for Bash
|
||||||
PROJECTS=$(echo "$(params.targetProjects)" | tr ',' ' ')
|
PROJECTS=$(echo "$(params.targetProjects)" | tr ',' ' ')
|
||||||
|
|
||||||
# Run lint and test in parallel using nx run-many
|
|
||||||
echo "🔍 Running lint for projects: $PROJECTS"
|
echo "🔍 Running lint for projects: $PROJECTS"
|
||||||
pnpm nx run-many --target=lint --projects="$(params.targetProjects)" --parallel=4
|
pnpm nx run-many --target=lint --projects="$(params.targetProjects)" --parallel=4
|
||||||
|
|
||||||
echo "🧪 Running tests for projects: $PROJECTS"
|
echo "🧪 Running tests for projects: $PROJECTS"
|
||||||
pnpm nx run-many --target=test --projects="$(params.targetProjects)" --parallel=4
|
pnpm nx run-many --target=test --projects="$(params.targetProjects)" --parallel=4
|
||||||
|
|
||||||
# Initialize result variables
|
##############################
|
||||||
|
# Coverage
|
||||||
|
##############################
|
||||||
COVERAGE_DIRS=""
|
COVERAGE_DIRS=""
|
||||||
HTML_DIRS=""
|
HTML_DIRS=""
|
||||||
|
|
||||||
# Run coverage for each project
|
|
||||||
for project in $PROJECTS; do
|
for project in $PROJECTS; do
|
||||||
echo "📊 Generating coverage for project: $project"
|
echo "📊 Generating coverage for project: $project"
|
||||||
PROJECT_PATH=$(pnpm nx show project "$project" --json | jq -r '.root')
|
PROJECT_PATH=$(pnpm nx show project "$project" --json | jq -r '.root')
|
||||||
@ -116,9 +122,14 @@ spec:
|
|||||||
echo "⚠️ HTML coverage report not found for $project"
|
echo "⚠️ HTML coverage report not found for $project"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 돌아가기
|
||||||
cd /workspace/base/$(params.context)/$(params.source)/$(params.workspaceName)
|
cd /workspace/base/$(params.context)/$(params.source)/$(params.workspaceName)
|
||||||
done
|
done
|
||||||
|
|
||||||
# Write results to Tekton results
|
##############################
|
||||||
|
# Output to Tekton results
|
||||||
|
##############################
|
||||||
echo "$COVERAGE_DIRS" > /tekton/results/coverage-dir
|
echo "$COVERAGE_DIRS" > /tekton/results/coverage-dir
|
||||||
echo "$HTML_DIRS" > /tekton/results/coverage-html
|
echo "$HTML_DIRS" > /tekton/results/coverage-html
|
||||||
|
|
||||||
|
echo "🎉 Rust + Nx Analysis Task Completed!"
|
Loading…
x
Reference in New Issue
Block a user