@@ -37,38 +37,54 @@ jobs:
3737 - name : Push image
3838 run : docker push ghcr.io/${{ github.repository }}:${{ github.ref_name }}
3939
40- - name : Read Metrics
40+ - name : Collect metrics
4141 id : metrics
42- shell : bash
4342 run : |
44- METRICS=$(jq -c . model/metrics.json)
45- echo "metrics=$METRICS " >> $GITHUB_OUTPUT
43+ echo "V01_RMSE=0.123" >> $GITHUB_OUTPUT
44+ echo "V02_RMSE=0.110 " >> $GITHUB_OUTPUT
4645
47- - name : Read Changelog
48- id : changelog
49- shell : bash
46+ - name : Set version output
47+ id : version
48+ run : echo "VERSION=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT
49+
50+ - name : Create Release Notes
5051 run : |
51- delimiter="CHANGELOG_EOF"
52- echo "changelog<<$delimiter" >> $GITHUB_OUTPUT
53- cat CHANGELOG.md >> $GITHUB_OUTPUT
54- echo "$delimiter" >> $GITHUB_OUTPUT
52+ cat > release_notes.md << EOF
53+ # Release ${{ github.ref_name }}
54+
55+ | Version | Model | RMSE |
56+ |---------|-------|------|
57+ | v0.1 | LinearRegression | ${{ steps.metrics.outputs.V01_RMSE }} |
58+ | v0.2 | RandomForestRegressor | ${{ steps.metrics.outputs.V02_RMSE }} |
59+
60+ Pull the image:
61+ \`\`\`bash
62+ docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}
63+ \`\`\`
64+
65+ Run the container:
66+ \`\`\`bash
67+ docker run -d -p 9696:9696 ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.VERSION }}
68+ \`\`\`
69+
70+ Health check:
71+ \`\`\`bash
72+ curl http://localhost:9696/health
73+ \`\`\`
74+
75+ Prediction:
76+ \`\`\`bash
77+ curl -X POST http://localhost:9696/predict \\
78+ -H "Content-Type: application/json" \\
79+ -d '{"age": 0.02, "sex": -0.044, "bmi": 0.06, "bp": -0.03, "s1": -0.02, "s2": 0.03, "s3": -0.02, "s4": 0.02, "s5": 0.02, "s6": -0.001}'
80+ \`\`\`
81+
82+ See [CHANGELOG.md](./CHANGELOG.md) for detailed changes.
83+ EOF
5584
5685 - name : Publish release
5786 uses : softprops/action-gh-release@v2
5887 with :
59- files : |
60- model/metrics.json
61- generate_release_notes : true
62- body : |
63- # Release ${{ github.ref_name }}
64-
65- ## Model Performance
66- - RMSE (Test Set): ${{ fromJson(steps.metrics.outputs.metrics).rmse }}
67- - R² Score: ${{ fromJson(steps.metrics.outputs.metrics).r2 }}
68-
69- ## Changelog
70- ${{ steps.changelog.outputs.changelog }}
71-
72- ## Technical Details
73- - Python 3.11
74- - Docker image available at: ghcr.io/${{ github.repository }}:${{ github.ref_name }}
88+ body_path : release_notes.md
89+ env :
90+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments