瀏覽代碼

Added publish command

Tim Jones 2 月之前
父節點
當前提交
cff9a13896
共有 1 個文件被更改,包括 88 次插入0 次删除
  1. 88 0
      .github/workflows/publish.yml

+ 88 - 0
.github/workflows/publish.yml

@@ -0,0 +1,88 @@
+name: RackPeek Release
+
+on:
+  workflow_dispatch:
+    inputs:
+      version:
+        description: "RackPeek version (e.g. 0.1.0)"
+        required: true
+        default: "0.0.1"
+
+permissions:
+  contents: write
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v4
+
+      - name: Setup .NET
+        uses: actions/setup-dotnet@v4
+        with:
+          dotnet-version: 10.0.x
+
+      - name: Set version variables
+        run: |
+          VERSION="${{ github.event.inputs.version }}"
+          FORMATTED_VERSION="${VERSION//./_}"
+          echo "VERSION=$VERSION" >> $GITHUB_ENV
+          echo "FORMATTED_VERSION=$FORMATTED_VERSION" >> $GITHUB_ENV
+
+      - name: Publish RackPeek (all platforms)
+        run: |
+          OUTPUT_DIR="${{ github.workspace }}/output"
+          mkdir -p "$OUTPUT_DIR"
+
+          PROJECT="./RackPeek/RackPeek.csproj"
+          APP_NAME="rackpeek"
+
+          PLATFORMS=(
+            "win-x64"
+            "linux-x64"
+            "linux-arm64"
+            "osx-x64"
+            "osx-arm64"
+          )
+
+          for PLATFORM in "${PLATFORMS[@]}"; do
+            echo "Publishing for $PLATFORM"
+
+            PUBLISH_DIR="$OUTPUT_DIR/publish-$PLATFORM"
+            dotnet publish "$PROJECT" \
+              -c Release \
+              -r "$PLATFORM" \
+              --self-contained true \
+              -p:PublishSingleFile=true \
+              -p:PublishTrimmed=true \
+              -o "$PUBLISH_DIR"
+
+            if [[ "$PLATFORM" == win-* ]]; then
+              mv "$PUBLISH_DIR/RackPeek.exe" \
+                 "$OUTPUT_DIR/${APP_NAME}_${FORMATTED_VERSION}_${PLATFORM}.exe"
+            else
+              mv "$PUBLISH_DIR/RackPeek" \
+                 "$OUTPUT_DIR/${APP_NAME}_${FORMATTED_VERSION}_${PLATFORM}"
+            fi
+          done
+
+      - name: Verify output artifacts
+        run: |
+          ls -lh ${{ github.workspace }}/output
+
+      - name: Create GitHub Release
+        uses: softprops/action-gh-release@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          tag_name: "RackPeek-${{ env.VERSION }}"
+          name: "RackPeek ${{ env.VERSION }}"
+          draft: true
+          files: |
+            output/rackpeek_${{ env.FORMATTED_VERSION }}_win-x64.exe
+            output/rackpeek_${{ env.FORMATTED_VERSION }}_linux-x64
+            output/rackpeek_${{ env.FORMATTED_VERSION }}_linux-arm64
+            output/rackpeek_${{ env.FORMATTED_VERSION }}_osx-x64
+            output/rackpeek_${{ env.FORMATTED_VERSION }}_osx-arm64