Compare commits

...

3 commits

Author SHA1 Message Date
37194f5d29 chore: Use explicit ./artifacts path in release workflow
Some checks failed
CI / Test on Linux (push) Has been cancelled
CI / Test on Linux-1 (push) Has been cancelled
CI / Test on macOS (push) Has been cancelled
CI / Test on macOS-1 (push) Has been cancelled
2025-10-23 20:46:37 +08:00
b84662843b feat: Add workflow to release TailwindCSS CLI artifacts 2025-10-23 20:12:16 +08:00
d637b95450 chore: Add Swift 6.2 to CI matrix and cache packages 2025-10-23 20:01:04 +08:00
2 changed files with 124 additions and 2 deletions

View file

@ -12,13 +12,22 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
swift-version: ["6.1"]
swift-version: ["6.1", "6.2"]
container:
image: swift:${{ matrix.swift-version }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Cache Swift packages
uses: actions/cache@v4
with:
path: .build
key: ${{ runner.os }}-spm-${{ matrix.swift-version }}-${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-${{ matrix.swift-version }}-
${{ runner.os }}-spm-
- name: Build package
run: swift build --verbose
@ -30,7 +39,7 @@ jobs:
runs-on: macos-latest
strategy:
matrix:
swift-version: ["6.1"]
swift-version: ["6.1", "6.2"]
steps:
- name: Checkout code
uses: actions/checkout@v4
@ -40,6 +49,15 @@ jobs:
with:
swift-version: ${{ matrix.swift-version }}
- name: Cache Swift packages
uses: actions/cache@v4
with:
path: .build
key: ${{ runner.os }}-spm-${{ matrix.swift-version }}-${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-${{ matrix.swift-version }}-
${{ runner.os }}-spm-
- name: Build package
run: swift build --verbose

View file

@ -0,0 +1,104 @@
name: Release TailwindCSS CLI Artifacts
on:
workflow_dispatch:
inputs:
tailwind_version:
description: "TailwindCSS release version (e.g., v4.1.14)"
required: true
type: string
jobs:
build-and-release:
name: Build and Release Artifacts
runs-on: macos-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Swift
uses: swift-actions/setup-swift@v2
with:
swift-version: "6.1"
- name: Cache Swift packages
uses: actions/cache@v4
with:
path: .build
key: ${{ runner.os }}-spm-release-${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-release-
${{ runner.os }}-spm-
- name: Validate version format
run: |
if [[ ! "${{ inputs.tailwind_version }}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Error: Version must be in format vX.Y.Z (e.g., v4.1.14)"
exit 1
fi
echo "Version format is valid: ${{ inputs.tailwind_version }}"
- name: Build artifact bundler
run: |
echo "Building TailwindCSSCLIArtifactBundler..."
swift build -c release --product TailwindCSSCLIArtifactBundler
- name: Create artifact bundles
run: |
echo "Creating artifact bundles for TailwindCSS ${{ inputs.tailwind_version }}..."
mkdir -p ./artifacts
.build/release/TailwindCSSCLIArtifactBundler \
--version "${{ inputs.tailwind_version }}" \
--work-dir "${{ runner.temp }}/tailwindcss-bundles" \
--output-dir ./artifacts
- name: List generated artifacts
run: |
echo "Generated artifacts:"
ls -lh artifacts/
- name: Compute checksum
id: checksum
run: |
CHECKSUM=$(shasum -a 256 artifacts/tailwindcss.artifactbundleindex | awk '{print $1}')
echo "checksum=$CHECKSUM" >> $GITHUB_OUTPUT
echo "Artifact bundle index checksum: $CHECKSUM"
- name: Create release
uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1
with:
tag_name: TailwindCSSCLI-${{ inputs.tailwind_version }}
name: TailwindCSS CLI ${{ inputs.tailwind_version }}
body: |
## TailwindCSS CLI Artifact Bundles
This release contains Swift Package Manager artifact bundles for TailwindCSS CLI version `${{ inputs.tailwind_version }}`.
### Included Artifacts
- Linux x64 (`x86_64-unknown-linux-gnu`)
- macOS x64 (`x86_64-apple-darwin`)
- macOS ARM64 (`aarch64-apple-darwin`)
### Usage
Add the artifact bundle to your `Package.swift`:
```swift
.binaryTarget(
name: "TailwindCSSCLI",
url: "https://github.com/${{ github.repository }}/releases/download/TailwindCSSCLI@${{ inputs.tailwind_version }}/tailwindcss.artifactbundleindex",
checksum: "${{ steps.checksum.outputs.checksum }}"
)
```
### Checksum
```
${{ steps.checksum.outputs.checksum }}
```
draft: false
prerelease: false
make_latest: false
files: |
artifacts/*.zip
artifacts/tailwindcss.artifactbundleindex