Some checks failed
audit / audit (push) Failing after 6s
ci-cd / build (push) Failing after 4s
ci / build (push) Failing after 2s
autofix / fix (push) Failing after 9s
test / test (push) Successful in 4s
ci-cd / deploy (push) Has been skipped
security-scanning / audit (push) Failing after 7s
PROGRESS: Poetry installed via pipx but not in PATH during workflow execution Issue: 'poetry: command not found' despite pipx installation Root cause: PATH not updated in workflow execution context Solution: Use full poetry path as fallback + PATH export Changes: - Add /root/.local/bin to PATH in workflows - Use full poetry path as fallback: /root/.local/share/pipx/venvs/poetry/bin/poetry - Install poetry on gitea-runner server for system availability - Add path detection and fallback logic - Maintain both PATH and full path approaches Updated workflows: - audit.yml: Poetry path resolution + dependency installation - fix.yml: Poetry path resolution + dependency installation + safety - security-scanning.yml: Poetry path resolution + dependency installation + security Expected results: - Poetry found via PATH or full path fallback - Project dependencies installed successfully - Security tools working in project venv - All workflows completing successfully - Complete PEP 668 compliance maintained This should resolve the 'command not found' issue and enable proper poetry execution for dependency management.
99 lines
3.4 KiB
YAML
99 lines
3.4 KiB
YAML
name: audit
|
|
|
|
on:
|
|
push:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
audit:
|
|
runs-on: debian
|
|
|
|
steps:
|
|
- name: Nuclear fix - absolute path control
|
|
run: |
|
|
echo "=== AUDIT NUCLEAR FIX ==="
|
|
echo "Current PWD: $(pwd)"
|
|
echo "Forcing absolute workspace path..."
|
|
|
|
# Clean and create absolute workspace
|
|
rm -rf /opt/gitea-runner/workspace
|
|
mkdir -p /opt/gitea-runner/workspace
|
|
cd /opt/gitea-runner/workspace
|
|
|
|
echo "Workspace PWD: $(pwd)"
|
|
echo "Cloning repository..."
|
|
git clone https://gitea.bubuit.net/oib/aitbc.git repo
|
|
|
|
cd repo
|
|
echo "Repo PWD: $(pwd)"
|
|
echo "Files in repo:"
|
|
ls -la
|
|
|
|
echo "=== PROJECT TYPE CHECK ==="
|
|
if [ -f "package.json" ]; then
|
|
echo "✅ Node.js project detected!"
|
|
echo "Package.json content:"
|
|
cat package.json
|
|
echo "=== NPM INSTALL ==="
|
|
npm install --legacy-peer-deps
|
|
echo "✅ Running npm audit..."
|
|
npm audit || true
|
|
elif [ -f "pyproject.toml" ]; then
|
|
echo "✅ Python project detected!"
|
|
echo "=== PYTHON SETUP ==="
|
|
|
|
# Install Python and pip if not available
|
|
if ! command -v python3 >/dev/null 2>&1; then
|
|
echo "Installing Python 3..."
|
|
apt-get update
|
|
apt-get install -y python3 python3-pip python3-venv python3-full pipx
|
|
fi
|
|
|
|
# Install pipx if not available (for poetry)
|
|
if ! command -v pipx >/dev/null 2>&1; then
|
|
echo "Installing pipx..."
|
|
python3 -m pip install --user pipx
|
|
python3 -m pipx ensurepath
|
|
fi
|
|
|
|
echo "=== POETRY SETUP ==="
|
|
# Add poetry to PATH and install if needed
|
|
export PATH="$PATH:/root/.local/bin"
|
|
if ! command -v poetry >/dev/null 2>&1; then
|
|
echo "Installing poetry with pipx..."
|
|
pipx install poetry
|
|
export PATH="$PATH:/root/.local/bin"
|
|
else
|
|
echo "Poetry already available at $(which poetry)"
|
|
fi
|
|
|
|
# Use full path as fallback
|
|
POETRY_CMD="/root/.local/share/pipx/venvs/poetry/bin/poetry"
|
|
if [ -f "$POETRY_CMD" ]; then
|
|
echo "Using poetry at: $POETRY_CMD"
|
|
else
|
|
POETRY_CMD="poetry"
|
|
fi
|
|
|
|
echo "=== PROJECT VIRTUAL ENVIRONMENT ==="
|
|
# Create venv for project dependencies
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
|
|
echo "Project venv activated"
|
|
echo "Python in venv: $(python --version)"
|
|
echo "Pip in venv: $(pip --version)"
|
|
|
|
echo "=== PYTHON DEPENDENCIES ==="
|
|
# Use poetry to install project dependencies
|
|
echo "Installing project dependencies with poetry..."
|
|
$POETRY_CMD install
|
|
|
|
echo "✅ Python dependencies installed!"
|
|
else
|
|
echo "❌ No supported project type found!"
|
|
echo "Looking for package.json or pyproject.toml..."
|
|
find . -name "package.json" -o -name "pyproject.toml" 2>/dev/null || echo "No project files found"
|
|
exit 1
|
|
fi
|