mirror of
https://github.com/house-of-vanity/khm.git
synced 2025-08-21 14:27:14 +00:00
Fix Release action
This commit is contained in:
90
.github/workflows/main.yml
vendored
90
.github/workflows/main.yml
vendored
@@ -103,74 +103,48 @@ jobs:
|
|||||||
path: target/${{ matrix.build_target }}/release/${{ env.BINARY_NAME }}*
|
path: target/${{ matrix.build_target }}/release/${{ env.BINARY_NAME }}*
|
||||||
|
|
||||||
release:
|
release:
|
||||||
name: Create Release Page
|
name: Create Release and Upload Assets
|
||||||
if: always() # Always run even if some builds fail
|
if: always() # Always run even if some builds fail
|
||||||
needs: build
|
needs: build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Create Release
|
|
||||||
id: create_release
|
- name: Download all artifacts
|
||||||
uses: actions/create-release@v1
|
uses: actions/download-artifact@v4
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
with:
|
||||||
tag_name: ${{ github.ref }}
|
path: artifacts/
|
||||||
release_name: Release ${{ github.ref }}
|
|
||||||
|
- name: Prepare release assets
|
||||||
|
run: |
|
||||||
|
mkdir -p release-assets/
|
||||||
|
find artifacts/ -type f -name "${{ env.BINARY_NAME }}*" -exec cp {} release-assets/ \;
|
||||||
|
cd release-assets/
|
||||||
|
# Rename files to include platform in filename
|
||||||
|
for file in *; do
|
||||||
|
if [[ -f "$file" ]]; then
|
||||||
|
# Extract platform from parent directory name in artifacts
|
||||||
|
platform=$(find ../artifacts/ -name "$file" -printf "%h\n" | sed 's|.*/||' | sed 's|khm_||')
|
||||||
|
if [[ "$file" == *".exe" ]]; then
|
||||||
|
mv "$file" "${{ env.BINARY_NAME }}_${platform}.exe"
|
||||||
|
else
|
||||||
|
mv "$file" "${{ env.BINARY_NAME }}_${platform}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
ls -la
|
||||||
|
|
||||||
|
- name: Create Release
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
name: Release ${{ github.ref_name }}
|
||||||
|
files: release-assets/*
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
|
generate_release_notes: true
|
||||||
upload:
|
fail_on_unmatched_files: false
|
||||||
name: Upload Release Assets
|
|
||||||
if: always() # Always run even if some builds fail
|
|
||||||
needs: release
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
# - os: ubuntu-latest
|
|
||||||
# platform_name: linux-amd64-musl
|
|
||||||
- os: ubuntu-latest
|
|
||||||
platform_name: linux-amd64
|
|
||||||
- os: windows-latest
|
|
||||||
platform_name: windows-amd64
|
|
||||||
- os: macos-latest
|
|
||||||
platform_name: macos-arm64
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- uses: actions/download-artifact@v4
|
|
||||||
name: Download ${{ matrix.platform_name }} artifact
|
|
||||||
with:
|
|
||||||
name: ${{ env.BINARY_NAME }}_${{ matrix.platform_name }}
|
|
||||||
path: ${{ env.BINARY_NAME }}_${{ matrix.platform_name }}
|
|
||||||
continue-on-error: true # Continue if artifact doesn't exist
|
|
||||||
|
|
||||||
- name: Check if artifact exists
|
|
||||||
id: check_artifact
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ -f "${{ env.BINARY_NAME }}_${{ matrix.platform_name }}/${{ env.BINARY_NAME }}${{ matrix.platform_name == 'windows-amd64' && '.exe' || '' }}" ]; then
|
|
||||||
echo "artifact_exists=true" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "artifact_exists=false" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Upload Release Asset
|
|
||||||
if: steps.check_artifact.outputs.artifact_exists == 'true' && needs.release.outputs.upload_url != ''
|
|
||||||
uses: actions/upload-release-asset@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
upload_url: ${{ needs.release.outputs.upload_url }}
|
|
||||||
asset_path: ${{ env.BINARY_NAME }}_${{ matrix.platform_name }}/${{ env.BINARY_NAME }}${{ matrix.platform_name == 'windows-amd64' && '.exe' || '' }}
|
|
||||||
asset_name: ${{ env.BINARY_NAME }}_${{ matrix.platform_name }}${{ matrix.platform_name == 'windows-amd64' && '.exe' || '' }}
|
|
||||||
asset_content_type: application/octet-stream
|
|
||||||
|
|
||||||
# build_docker:
|
# build_docker:
|
||||||
# name: Build and Publish Docker Image
|
# name: Build and Publish Docker Image
|
||||||
|
Reference in New Issue
Block a user