Change MIT to Unlicense #12
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: Monte Carlo Gold Replicator CI | ||
| on: | ||
| push: | ||
| branches: [ main, develop ] | ||
| pull_request: | ||
| branches: [ main ] | ||
| jobs: | ||
| monte-carlo-optimization: | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| matrix: | ||
| python-version: [3.9, 3.10, 3.11] | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| - name: Set up Python ${{ matrix.python-version }} | ||
| uses: actions/setup-python@v3 | ||
| with: | ||
| python-version: ${{ matrix.python-version }} | ||
| - name: Install dependencies | ||
| run: | | ||
| python -m pip install --upgrade pip | ||
| pip install numpy matplotlib scipy scikit-optimize | ||
| if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Run digital twin optimization (Month 1) | ||
| run: | | ||
| cd prototyping | ||
| python digital_twin_optimizer.py | ||
| - name: Validate atomic data binding | ||
| run: | | ||
| cd prototyping | ||
| python atomic_binder.py | ||
| - name: Test simulation interface | ||
| run: | | ||
| cd prototyping | ||
| python simulations.py | ||
| micro-experiment-planning: | ||
| runs-on: ubuntu-latest | ||
| needs: monte-carlo-optimization | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| - name: Set up Python 3.11 | ||
| uses: actions/setup-python@v3 | ||
| with: | ||
| python-version: 3.11 | ||
| - name: Install dependencies | ||
| run: | | ||
| python -m pip install --upgrade pip | ||
| pip install numpy matplotlib scipy scikit-optimize | ||
| - name: Calculate optimal experimental parameters | ||
| run: | | ||
| cd prototyping | ||
| python monthly_experiment_planner.py --budget=100 | ||
| - name: Generate vendor specifications | ||
| run: | | ||
| cd prototyping | ||
| python vendor_spec_generator.py | ||
| - name: Generate vendor specifications | ||
| run: | | ||
| cd prototyping | ||
| python vendor_spec_generator.py | ||
| - name: Upload experiment specifications | ||
| uses: actions/upload-artifact@v3 | ||
| with: | ||
| name: micro-experiment-specs | ||
| path: experiment_specs/ | ||
| cost-viability-analysis: | ||
| runs-on: ubuntu-latest | ||
| needs: monte-carlo-optimization | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| - name: Set up Python 3.11 | ||
| uses: actions/setup-python@v3 | ||
| with: | ||
| python-version: 3.11 | ||
| - name: Install dependencies | ||
| run: | | ||
| python -m pip install --upgrade pip | ||
| pip install numpy matplotlib scipy | ||
| - name: Analyze outsourcing cost structure | ||
| run: | | ||
| cd prototyping | ||
| python outsourcing_cost_analyzer.py --budget=100 --target-roi=200 | ||
| - name: Generate monthly experiment plan | ||
| run: | | ||
| cd prototyping | ||
| python monthly_experiment_planner.py > monthly_plan.txt | ||
| - name: Upload monthly plan | ||
| uses: actions/upload-artifact@v3 | ||
| with: | ||
| name: monthly-experiment-plan | ||
| path: prototyping/monthly_plan.txt | ||
| - name: Check minimum viable yield threshold | ||
| run: | | ||
| cd prototyping | ||
| python -c " | ||
| from outsourcing_cost_analyzer import OutsourcingAnalyzer | ||
| from monte_carlo_optimizer import MonteCarloOptimizer | ||
| analyzer = OutsourcingAnalyzer() | ||
| mc = MonteCarloOptimizer() | ||
| # Get best predicted recipe | ||
| best_recipe = mc.get_optimal_recipe() | ||
| predicted_yield = best_recipe['predicted_au_mg'] | ||
| # Check if economically viable for outsourcing | ||
| viable = analyzer.is_viable_for_outsourcing(predicted_yield, cost_per_run=60) | ||
| print(f'Predicted yield: {predicted_yield:.4f} mg Au per run') | ||
| print(f'Cost per run: \$60 CAD') | ||
| print(f'Economically viable: {viable}') | ||
| if not viable: | ||
| print('WARNING: Current recipe may not be economically viable') | ||
| print('Consider optimizing for higher yield or lower cost') | ||
| exit(1) | ||
| else: | ||
| print('SUCCESS: Recipe ready for micro-experiment outsourcing') | ||
| exit(0) | ||
| " | ||
| windows-compatibility: | ||
| runs-on: windows-latest | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| - name: Set up Python 3.11 | ||
| uses: actions/setup-python@v3 | ||
| with: | ||
| python-version: 3.11 | ||
| - name: Install dependencies | ||
| run: | | ||
| python -m pip install --upgrade pip | ||
| pip install numpy matplotlib scipy scikit-optimize | ||
| - name: Test Monte Carlo on Windows | ||
| run: | | ||
| cd prototyping | ||
| python monte_carlo_optimizer.py --iterations=100 --test-mode | ||
| - name: Validate vendor spec generation | ||
| run: | | ||
| cd prototyping | ||
| python vendor_spec_generator.py --test-mode | ||