fixing script.js #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Chemical Engineering Thermodynamics Toolkit CI | |
| on: | |
| push: | |
| branches: [ master, develop ] | |
| pull_request: | |
| branches: [ master, develop ] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12"] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Cache pip dependencies | |
| uses: actions/cache@v3 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('**/requirements.txt') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip-${{ matrix.python-version }}- | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| pip install pytest pytest-cov flake8 black | |
| - name: Lint with flake8 | |
| run: | | |
| # stop the build if there are Python syntax errors or undefined names | |
| flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
| # exit-zero treats all errors as warnings | |
| flake8 . --count --exit-zero --max-complexity=10 --max-line-length=88 --statistics | |
| - name: Check code formatting with black | |
| run: | | |
| black --check --diff . | |
| - name: Run tests | |
| run: | | |
| pytest --cov=src --cov-report=xml --cov-report=html | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v3 | |
| with: | |
| file: ./coverage.xml | |
| flags: unittests | |
| name: codecov-umbrella | |
| integration-test: | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.12" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| - name: Test Flask application startup | |
| run: | | |
| timeout 30s python main.py & | |
| sleep 10 | |
| curl -f http://localhost:5000/ || exit 1 | |
| pkill -f "python main.py" | |
| - name: Test core modules import | |
| run: | | |
| python -c " | |
| import sys | |
| from pathlib import Path | |
| src_path = Path('src') | |
| sys.path.insert(0, str(src_path)) | |
| # Test core imports | |
| from src.core import get_thermodynamics_toolkit, get_phase_equilibrium | |
| print('✅ Core modules imported successfully') | |
| # Test web imports | |
| from src.web.app import app | |
| print('✅ Web app imported successfully') | |
| " | |
| build-docs: | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.12" | |
| - name: Install documentation dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install sphinx sphinx-rtd-theme | |
| - name: Build documentation | |
| run: | | |
| # Create docs directory if it doesn't exist | |
| mkdir -p docs | |
| # Generate basic documentation | |
| echo "# Chemical Engineering Thermodynamics Toolkit" > docs/README.md | |
| echo "" >> docs/README.md | |
| echo "## Installation" >> docs/README.md | |
| echo "\`\`\`bash" >> docs/README.md | |
| echo "pip install -r requirements.txt" >> docs/README.md | |
| echo "\`\`\`" >> docs/README.md | |
| echo "" >> docs/README.md | |
| echo "## Usage" >> docs/README.md | |
| echo "\`\`\`bash" >> docs/README.md | |
| echo "python main.py" >> docs/README.md | |
| echo "\`\`\`" >> docs/README.md | |
| security-scan: | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.12" | |
| - name: Install security tools | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install bandit safety | |
| - name: Run security scan with bandit | |
| run: | | |
| bandit -r src/ -f json -o bandit-report.json || true | |
| - name: Run safety check | |
| run: | | |
| safety check --json --output safety-report.json || true | |
| - name: Upload security reports | |
| uses: actions/upload-artifact@v3 | |
| with: | |
| name: security-reports | |
| path: | | |
| bandit-report.json | |
| safety-report.json | |
| deploy-preview: | |
| runs-on: ubuntu-latest | |
| needs: [test, integration-test] | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.12" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| - name: Start application for preview | |
| run: | | |
| echo "🚀 Starting preview server..." | |
| timeout 300s python main.py & | |
| sleep 15 | |
| echo "✅ Application started successfully" | |
| echo "🔗 Preview available at: http://localhost:5000" | |
| - name: Comment PR with preview info | |
| uses: actions/github-script@v6 | |
| with: | |
| script: | | |
| github.rest.issues.createComment({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| body: `🚀 **Preview Available!** | |
| The Chemical Engineering Thermodynamics Toolkit is now running for preview. | |
| **Features tested:** | |
| ✅ Core thermodynamics modules | |
| ✅ Web application startup | |
| ✅ Flask routes and templates | |
| ✅ Static file serving | |
| **Next steps:** | |
| - Review the changes | |
| - Test the web interface | |
| - Approve and merge when ready` | |
| }) |