From 7cb8f412a99abe02b877213586c98a8deeb68dc4 Mon Sep 17 00:00:00 2001 From: BAK BYEONG JUN Date: Sat, 26 Apr 2025 07:44:45 +0000 Subject: [PATCH] init --- tasks/rust-nx-analysis/task.yaml | 47 ++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/tasks/rust-nx-analysis/task.yaml b/tasks/rust-nx-analysis/task.yaml index 4e6eaf6..48e9632 100644 --- a/tasks/rust-nx-analysis/task.yaml +++ b/tasks/rust-nx-analysis/task.yaml @@ -27,7 +27,7 @@ spec: - name: coverage-html description: Comma-separated paths to generated HTML coverage report directories steps: - - name: install-dependencies + - name: analyze image: rust:1.75-slim workingDir: /workspace/base/$(params.context)/$(params.source)/$(params.workspaceName) env: @@ -37,12 +37,18 @@ spec: #!/bin/bash set -e + echo "πŸš€ Starting Rust + Nx Analysis" + + ############################## # Install system dependencies + ############################## 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 - apt-get install -y nodejs + ############################## # Install Rust tools + ############################## rustup component add clippy # 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 chmod +x ~/.cargo/bin/cargo-tarpaulin - # Install pnpm - corepack enable - corepack prepare pnpm@10.8.1 --activate + ############################## + # Install pnpm globally + ############################## + npm install -g pnpm@10.8.1 + ############################## # Install Nx dependencies + ############################## pnpm install --frozen-lockfile + ############################## # Version checks + ############################## + echo "βœ… Version Info:" rustc --version cargo --version node --version npm --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 # Convert comma-separated targetProjects to space-separated for Bash PROJECTS=$(echo "$(params.targetProjects)" | tr ',' ' ') - # Run lint and test in parallel using nx run-many echo "πŸ” Running lint for projects: $PROJECTS" pnpm nx run-many --target=lint --projects="$(params.targetProjects)" --parallel=4 echo "πŸ§ͺ Running tests for projects: $PROJECTS" pnpm nx run-many --target=test --projects="$(params.targetProjects)" --parallel=4 - # Initialize result variables + ############################## + # Coverage + ############################## COVERAGE_DIRS="" HTML_DIRS="" - # Run coverage for each project for project in $PROJECTS; do echo "πŸ“Š Generating coverage for project: $project" PROJECT_PATH=$(pnpm nx show project "$project" --json | jq -r '.root') @@ -116,9 +122,14 @@ spec: echo "⚠️ HTML coverage report not found for $project" fi + # λŒμ•„κ°€κΈ° cd /workspace/base/$(params.context)/$(params.source)/$(params.workspaceName) done - # Write results to Tekton results + ############################## + # Output to Tekton results + ############################## echo "$COVERAGE_DIRS" > /tekton/results/coverage-dir - echo "$HTML_DIRS" > /tekton/results/coverage-html \ No newline at end of file + echo "$HTML_DIRS" > /tekton/results/coverage-html + + echo "πŸŽ‰ Rust + Nx Analysis Task Completed!" \ No newline at end of file