From 3792d00d6e31ebd18507c97a3ffea1c76e311e6d Mon Sep 17 00:00:00 2001 From: Leon Mika Date: Sat, 2 May 2026 10:43:44 +1000 Subject: [PATCH] Finalize action.yml with full inputs and outputs Co-Authored-By: Claude Opus 4.7 (1M context) --- action.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/action.yml b/action.yml index b150388..fb9ef2f 100644 --- a/action.yml +++ b/action.yml @@ -1,7 +1,64 @@ name: Wails Release description: Build, sign, notarize and (optionally) upload a Wails macOS app +branding: + icon: package + color: blue + +inputs: + working-directory: { description: "Directory containing wails.json", required: false, default: "." } + app-name: { description: "Override the app name (defaults to wails.json `name`)", required: false } + version: { description: "Override the version (defaults to tag/SHA logic)", required: false } + wails-version: { description: "Override the Wails CLI version (defaults to project go.mod)", required: false } + extra-build-flags: { description: "Additional flags appended to `wails build`", required: false } + + developer-id-cert-base64: { description: "Base64-encoded Developer ID .p12", required: true } + developer-id-cert-password: { description: ".p12 password", required: true } + + notarization-method: { description: "api-key | apple-id | auto", required: false, default: "auto" } + notarization-api-key-base64: { description: "Base64-encoded App Store Connect .p8", required: false } + notarization-api-key-id: { description: "App Store Connect API key ID", required: false } + notarization-api-issuer-id: { description: "App Store Connect issuer ID", required: false } + notarization-apple-id: { description: "Apple ID (e.g. user@example.com)", required: false } + notarization-apple-password: { description: "App-specific password", required: false } + notarization-team-id: { description: "Apple developer Team ID", required: false } + + s3-bucket: { description: "S3 bucket name. If empty, upload is skipped.", required: false } + s3-key: { description: "Object key. Supports {version} and {filename} placeholders.", required: false } + s3-endpoint-url: { description: "Custom endpoint for S3-compatible storage (MinIO, R2, etc.)", required: false } + s3-region: { description: "AWS region", required: false, default: "us-east-1" } + +outputs: + version: { description: "Resolved version string", value: ${{ steps.run.outputs.version }} } + app-name: { description: "Resolved app name", value: ${{ steps.run.outputs.app-name }} } + artifact-path: { description: "Local absolute path to the .app.zip", value: ${{ steps.run.outputs.artifact-path }} } + artifact-filename: { description: "Filename of the .app.zip", value: ${{ steps.run.outputs.artifact-filename }} } + s3-url: { description: "s3://… URL if uploaded, else empty", value: ${{ steps.run.outputs.s3-url }} } + runs: using: composite steps: - - shell: bash - run: echo "wails-release stub" + - id: run + shell: bash + env: + INPUT_WORKING_DIRECTORY: ${{ inputs.working-directory }} + INPUT_APP_NAME: ${{ inputs.app-name }} + INPUT_VERSION: ${{ inputs.version }} + INPUT_WAILS_VERSION: ${{ inputs.wails-version }} + INPUT_EXTRA_BUILD_FLAGS: ${{ inputs.extra-build-flags }} + INPUT_DEVELOPER_ID_CERT_BASE64: ${{ inputs.developer-id-cert-base64 }} + INPUT_DEVELOPER_ID_CERT_PASSWORD: ${{ inputs.developer-id-cert-password }} + INPUT_NOTARIZATION_METHOD: ${{ inputs.notarization-method }} + INPUT_NOTARIZATION_API_KEY_BASE64: ${{ inputs.notarization-api-key-base64 }} + INPUT_NOTARIZATION_API_KEY_ID: ${{ inputs.notarization-api-key-id }} + INPUT_NOTARIZATION_API_ISSUER_ID: ${{ inputs.notarization-api-issuer-id }} + INPUT_NOTARIZATION_APPLE_ID: ${{ inputs.notarization-apple-id }} + INPUT_NOTARIZATION_APPLE_PASSWORD: ${{ inputs.notarization-apple-password }} + INPUT_NOTARIZATION_TEAM_ID: ${{ inputs.notarization-team-id }} + INPUT_S3_BUCKET: ${{ inputs.s3-bucket }} + INPUT_S3_KEY: ${{ inputs.s3-key }} + INPUT_S3_ENDPOINT_URL: ${{ inputs.s3-endpoint-url }} + INPUT_S3_REGION: ${{ inputs.s3-region }} + run: | + set -euo pipefail + go install "${{ github.action_repository }}/cmd/wails-release@${{ github.action_ref }}" + "$(go env GOPATH)/bin/wails-release"