diff --git a/.gitea/workflows/prepare-release.yml b/.gitea/workflows/prepare-release.yml index de6b6ab0..5cd8d135 100644 --- a/.gitea/workflows/prepare-release.yml +++ b/.gitea/workflows/prepare-release.yml @@ -4,8 +4,8 @@ on: workflow_dispatch: inputs: version: - description: 'Release version (e.g., v0.1.20260711 or v1.0.0)' - required: true + description: 'Release version (auto-generated if empty, e.g. quant_20260711.1.abc1234)' + required: false type: string env: @@ -16,6 +16,9 @@ jobs: name: Build & Create Release runs-on: ubuntu-latest timeout-minutes: 30 + outputs: + version: ${{ steps.metadata.outputs.version }} + commit: ${{ steps.metadata.outputs.commit }} steps: - name: Checkout @@ -29,14 +32,26 @@ jobs: - name: Generate Metadata id: metadata run: | - VERSION="${{ github.event.inputs.version }}" + VERSION_INPUT="${{ github.event.inputs.version }}" COMMIT=$(git rev-parse --short HEAD) - TIMESTAMP=$(TZ=UTC date +%Y%m%d_%H%M%S) - ARTIFACT="quantengine_${VERSION}_${COMMIT}.tar.gz" + + # Auto-generate version if not provided + if [ -z "$VERSION_INPUT" ]; then + TODAY=$(TZ=UTC date +%Y%m%d) + + # Count releases for today + RELEASES_TODAY=$(git tag -l "quant_${TODAY}.*" | wc -l) + DEPLOY_COUNT=$((RELEASES_TODAY + 1)) + + VERSION="quant_${TODAY}.${DEPLOY_COUNT}.${COMMIT}" + else + VERSION="$VERSION_INPUT" + fi + echo "version=${VERSION}" >> $GITHUB_OUTPUT - echo "artifact=${ARTIFACT}" >> $GITHUB_OUTPUT echo "commit=${COMMIT}" >> $GITHUB_OUTPUT - echo "timestamp=${TIMESTAMP}" >> $GITHUB_OUTPUT + echo "Version: $VERSION" + echo "Commit: $COMMIT" - name: Restore run: | @@ -85,8 +100,10 @@ jobs: - name: Package Artifact run: | - ARTIFACT="${{ steps.metadata.outputs.artifact }}" + VERSION="${{ steps.metadata.outputs.version }}" + ARTIFACT="quantengine_${VERSION}.tar.gz" tar -czf "$ARTIFACT" -C ./publish . + echo "artifact=${ARTIFACT}" >> $GITHUB_OUTPUT echo "✓ Package: $(du -sh $ARTIFACT | cut -f1)" file "$ARTIFACT" @@ -99,31 +116,24 @@ jobs: echo "✓ Tag created: $VERSION" - name: Create Gitea Release + env: + VERSION: ${{ steps.metadata.outputs.version }} + COMMIT: ${{ steps.metadata.outputs.commit }} run: | - VERSION="${{ steps.metadata.outputs.version }}" - ARTIFACT="${{ steps.metadata.outputs.artifact }}" - COMMIT="${{ steps.metadata.outputs.commit }}" - TOKEN="${{ secrets.GITEA_TOKEN }}" - REPO="kjh2064/QuantEngineByItz" + ARTIFACT="quantengine_${VERSION}.tar.gz" + BUILD_TIME=$(date '+%Y-%m-%d %H:%M:%S UTC') - # Create release gh release create "$VERSION" "$ARTIFACT" \ --title "Release $VERSION" \ - --notes "Commit: $COMMIT + --notes "Commit: ${COMMIT} Platform: .NET 10 -Build: $(date '+%Y-%m-%d %H:%M:%S UTC') +Build Time: ${BUILD_TIME} -## Files -- quantengine_release.tar.gz - - QuantEngine.Web.dll - - appsettings.Production.json - - All dependencies - -## Deployment -Use deploy-prod.yml with release: \`$VERSION\`" +Version Format: quant_YYYYMMDD.count.hash +Artifact: quantengine_${VERSION}.tar.gz" echo "✓ Release created: $VERSION" - echo "✓ Artifact attached" + echo "✓ Artifact attached: $ARTIFACT" notification: name: Release Notification