fix: Add checksum to release tag and fix zip invocation

Fix zip creation so the bundle is archived with the bundle root rather
than its full path. Use a standardized zip path, set
Process.currentDirectoryURL
to the bundle's parent, and pass the bundle basename to /usr/bin/zip.
This commit is contained in:
Shibo Lyu 2026-01-20 23:15:34 +08:00
parent 9be0695c55
commit f9024a8cd7
2 changed files with 10 additions and 10 deletions

View file

@ -70,7 +70,7 @@ jobs:
- name: Create release - name: Create release
uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1 uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1
with: with:
tag_name: TailwindCSSCLI-${{ inputs.tailwind_version }} tag_name: TailwindCSSCLI-${{ inputs.tailwind_version }}-${{ steps.checksum.outputs.checksum }}
name: TailwindCSS CLI ${{ inputs.tailwind_version }} name: TailwindCSS CLI ${{ inputs.tailwind_version }}
body: | body: |
## TailwindCSS CLI Artifact Bundles ## TailwindCSS CLI Artifact Bundles
@ -82,20 +82,14 @@ jobs:
- macOS x64 (`x86_64-apple-darwin`) - macOS x64 (`x86_64-apple-darwin`)
- macOS ARM64 (`aarch64-apple-darwin`) - macOS ARM64 (`aarch64-apple-darwin`)
### Usage ### Binary Target Definition
Add the artifact bundle to your `Package.swift`:
```swift ```swift
.binaryTarget( .binaryTarget(
name: "TailwindCSSCLI", name: "TailwindCSSCLI",
url: "https://github.com/${{ github.repository }}/releases/download/TailwindCSSCLI@${{ inputs.tailwind_version }}/tailwindcss.artifactbundleindex", url: "https://github.com/${{ github.repository }}/releases/download/TailwindCSSCLI-${{ inputs.tailwind_version }}-${{ steps.checksum.outputs.checksum }}/tailwindcss.artifactbundleindex",
checksum: "${{ steps.checksum.outputs.checksum }}" checksum: "${{ steps.checksum.outputs.checksum }}"
) )
``` ```
### Checksum
```
${{ steps.checksum.outputs.checksum }}
```
draft: false draft: false
prerelease: false prerelease: false
make_latest: false make_latest: false

View file

@ -21,9 +21,15 @@ extension ArtifactBundleBuilder {
try fileManager.removeItem(atPath: zipPath) try fileManager.removeItem(atPath: zipPath)
} }
let bundleDirURL = URL(fileURLWithPath: bundleDir)
let workDirURL = bundleDirURL.deletingLastPathComponent()
let bundleName = bundleDirURL.lastPathComponent
let process = Process() let process = Process()
process.executableURL = URL(fileURLWithPath: "/usr/bin/zip") process.executableURL = URL(fileURLWithPath: "/usr/bin/zip")
process.arguments = ["-r", zipPath, bundleDir] let zipPathURL = URL(fileURLWithPath: zipPath).standardizedFileURL
process.arguments = ["-r", zipPathURL.path, bundleName]
process.currentDirectoryURL = workDirURL
try process.run() try process.run()
process.waitUntilExit() process.waitUntilExit()