Skip to content

interop: add passive entitlements and promotional purchase APIs #1

interop: add passive entitlements and promotional purchase APIs

interop: add passive entitlements and promotional purchase APIs #1

Workflow file for this run

name: publish
on:
workflow_dispatch:
push:
tags:
- "v*"
permissions:
contents: read
packages: write
jobs:
pack_and_publish:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Determine package version
id: version
shell: bash
run: |
if [[ "${{ github.ref }}" =~ ^refs/tags/v ]]; then
REF="${{ github.ref }}"
VERSION="${REF#refs/tags/v}"
else
CSPROJ="src/Kapusch.StoreKit2ApisForiOSComponents/Kapusch.StoreKit2ApisForiOSComponents.csproj"
BASE_VERSION=$(grep -oE '<Version>[^<]+' "$CSPROJ" | head -n 1 | sed 's/<Version>//' || echo "0.1.0")
COMMIT_SHORT=$(git rev-parse --short HEAD)
RUN_NUMBER="${{ github.run_number }}"
VERSION="${BASE_VERSION}-prerelease.${RUN_NUMBER}.${COMMIT_SHORT}"
fi
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
- uses: actions/setup-dotnet@v4
with:
dotnet-version: "10.0.x"
- name: Install iOS workload
run: dotnet workload install ios
- name: Build iOS wrapper
run: |
bash src/Kapusch.StoreKit2ApisForiOSComponents/Native/iOS/build.sh
- name: Pack
run: |
dotnet pack src/Kapusch.StoreKit2ApisForiOSComponents/Kapusch.StoreKit2ApisForiOSComponents.csproj \
-c Release \
-o artifacts/nuget \
/p:PackageVersion="${{ steps.version.outputs.version }}"
- name: Validate nupkg layout
run: |
python3 - <<'PY'
import glob, sys, zipfile
nupkgs = glob.glob("artifacts/nuget/*.nupkg")
if not nupkgs:
print("ERROR: no .nupkg found under artifacts/nuget/")
sys.exit(1)
nupkg = sorted(nupkgs)[-1]
print(f"Validating {nupkg}")
z = zipfile.ZipFile(nupkg)
names = set(z.namelist())
required = [
"buildTransitive/Kapusch.StoreKit2.iOS.targets",
"kstorekit2.xcframework/Info.plist",
]
missing = [p for p in required if p not in names]
if missing:
print("ERROR: missing required paths in nupkg:")
for p in missing:
print(f" - {p}")
sys.exit(1)
print("OK: nupkg layout looks correct.")
PY
- name: Push to GitHub Packages
env:
NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
dotnet nuget push artifacts/nuget/*.nupkg \
--api-key "$NUGET_AUTH_TOKEN" \
--source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" \
--skip-duplicate