Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
BUILD_DIRECTORY: ''
UNITY_PROJECT_PATH: ${{ github.workspace }}/UnityProject
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- run: 'npm install -g openupm-cli'
- uses: buildalon/unity-setup@v1
- uses: buildalon/unity-setup@main

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'build' step
Uses Step
uses 'buildalon/unity-setup' with ref 'main', not a pinned commit hash
with:
version-file: 'None'
build-targets: ${{ matrix.build-target }}
Expand Down Expand Up @@ -70,26 +70,26 @@
echo "Creating build directory at $build_directory"
mkdir -p "$build_directory"
echo "BUILD_DIRECTORY=$build_directory" >> "$GITHUB_ENV"
- uses: buildalon/activate-unity-license@v1
- uses: buildalon/activate-unity-license@main

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'build' step
Uses Step
uses 'buildalon/activate-unity-license' with ref 'main', not a pinned commit hash
with:
license: 'Personal'
username: ${{ secrets.UNITY_USERNAME }}
password: ${{ secrets.UNITY_PASSWORD }}
- uses: buildalon/create-unity-project@v1
- uses: buildalon/create-unity-project@main

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'build' step
Uses Step
uses 'buildalon/create-unity-project' with ref 'main', not a pinned commit hash
name: Create Test Project
with:
project-name: UnityProject
template-name: com.unity.template.3d(-cross-platform)?
- run: openupm add com.virtualmaker.buildalon
name: Add Build Pipeline Package
working-directory: ${{ env.UNITY_PROJECT_PATH }}
- uses: buildalon/unity-action@v2
- uses: buildalon/unity-action@main

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'build' step
Uses Step
uses 'buildalon/unity-action' with ref 'main', not a pinned commit hash
name: '${{ matrix.build-target }}-Validate'
with:
build-target: ${{ matrix.build-target }}
log-name: '${{ matrix.build-target }}-Validate'
args: '-quit -nographics -batchmode -executeMethod Buildalon.Editor.BuildPipeline.UnityPlayerBuildTools.ValidateProject -importTMProEssentialsAsset'
- uses: buildalon/unity-action@v2
- uses: buildalon/unity-action@main

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'build' step
Uses Step
uses 'buildalon/unity-action' with ref 'main', not a pinned commit hash
name: '${{ matrix.build-target }}-Build'
with:
build-target: ${{ matrix.build-target }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update-release-tags.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: RageAgainstThePixel/update-action-release-tags@v1
2 changes: 1 addition & 1 deletion .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
sparse-checkout: .github/
- uses: RageAgainstThePixel/job-builder@v1
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,4 @@ This action requires several secrets that need to be setup in the repository or

- `executable`: Path to the exported archive executable.
- `output-directory`: The path to the export output directory.

100 changes: 50 additions & 50 deletions action.yml
Original file line number Diff line number Diff line change
@@ -1,125 +1,125 @@
name: Buildalon unity-xcode-builder
description: A GitHub Action to build, archive, and upload Unity exported xcode projects.
name: 'Buildalon unity-xcode-builder'
description: 'A GitHub Action to build, archive, and upload Unity exported xcode projects.'
branding:
icon: command
color: red
icon: 'command'
color: 'red'
inputs:
xcode-version:
description: The version of Xcode to use for building the Xcode project. Defaults to the [latest version of Xcode on the runner](https://github.com/actions/runner-images#available-images).
description: 'The version of Xcode to use for building the Xcode project. Defaults to the [latest version of Xcode on the runner](https://github.com/actions/runner-images#available-images).'
required: false
default: latest
default: 'latest'
project-path:
description: The directory that contains the exported xcode project from Unity.
description: 'The directory that contains the exported xcode project from Unity.'
required: false
app-store-connect-key:
description: The App Store Connect API AuthKey_*.p8 key encoded as base64 string.
description: 'The App Store Connect API AuthKey_*.p8 key encoded as base64 string.'
required: true
app-store-connect-key-id:
description: The App Store Connect API key id.
description: 'The App Store Connect API key id.'
required: true
app-store-connect-issuer-id:
description: The issuer ID of the App Store Connect API key.
description: 'The issuer ID of the App Store Connect API key.'
required: true
certificate:
description: Exported signing certificate.p12 encoded as base64 string. Overrides the automatic signing in Xcode.
description: 'Exported signing certificate.p12 encoded as base64 string. Overrides the automatic signing in Xcode.'
required: false
deprecationMessage: use `manual-signing-certificate` instead.
deprecationMessage: 'use `manual-signing-certificate` instead.'
manual-signing-certificate:
description: Exported signing certificate.p12 encoded as base64 string. Overrides the automatic signing in Xcode.
description: 'Exported signing certificate.p12 encoded as base64 string. Overrides the automatic signing in Xcode.'
required: false
certificate-password:
description: The password for the exported certificate. Required if `certificate` is provided.
description: 'The password for the exported certificate. Required if `certificate` is provided.'
required: false
deprecationMessage: use `manual-signing-certificate-password` instead.
deprecationMessage: 'use `manual-signing-certificate-password` instead.'
manual-signing-certificate-password:
description: The password for the exported certificate. Required if `manual-signing-certificate` is provided.
description: 'The password for the exported certificate. Required if `manual-signing-certificate` is provided.'
required: false
signing-identity:
description: The signing identity to use for signing the Xcode project. Parsed from the `manual-signing-certificate` if not provided.
description: 'The signing identity to use for signing the Xcode project. Parsed from the `manual-signing-certificate` if not provided.'
required: false
deprecationMessage: use `manual-signing-identity` instead.
deprecationMessage: 'use `manual-signing-identity` instead.'
manual-signing-identity:
description: The signing identity to use for signing the Xcode project. Parsed from the `manual-signing-certificate` if not provided.
description: 'The signing identity to use for signing the Xcode project. Parsed from the `manual-signing-certificate` if not provided.'
required: false
provisioning-profile:
description: The provisioning profile to use as base64 string. Use when manually signing the Xcode project.
description: 'The provisioning profile to use as base64 string. Use when manually signing the Xcode project.'
required: false
provisioning-profile-name:
description: The name of the provisioning profile file, including the type to use for signing the Xcode project. Must end with either `.mobileprovision` or `.provisionprofile`. Required if `provisioning-profile` is provided.
description: 'The name of the provisioning profile file, including the type to use for signing the Xcode project. Must end with either `.mobileprovision` or `.provisionprofile`. Required if `provisioning-profile` is provided.'
required: false
team-id:
description: The team ID to use for signing the Xcode project. Defaults to parsing team ID from `manual-signing-certificate` if provided.
description: 'The team ID to use for signing the Xcode project. Defaults to parsing team ID from `manual-signing-certificate` if provided.'
required: false
bundle-id:
description: The bundle ID of the Xcode project. Overrides the value in the exported Unity project. Defaults to parsing bundle ID from `.xcodeproj`.
description: 'The bundle ID of the Xcode project. Overrides the value in the exported Unity project. Defaults to parsing bundle ID from `.xcodeproj`.'
required: false
configuration:
description: The configuration to build the Xcode project with. Defaults to `Release`.
description: 'The configuration to build the Xcode project with. Defaults to `Release`.'
required: false
default: 'Release'
scheme:
description: The scheme to use when building the xcode project.
description: 'The scheme to use when building the xcode project.'
required: false
destination:
description: The destination to use when building the xcode project. Defaults to `generic/platform={platform}`.
description: 'The destination to use when building the xcode project. Defaults to `generic/platform={platform}`.'
required: false
platform:
description: The platform to build for. Can be one of `iOS`, `macOS`, `tvOS`, `visionOS`. Defaults to parsing platform from `.xcodeproj`.
description: 'The platform to build for. Can be one of `iOS`, `macOS`, `tvOS`, `visionOS`. Defaults to parsing platform from `.xcodeproj`.'
required: false
platform-sdk-version:
description: The version of the platform SDK to use for building the Xcode project. Defaults to the latest version of the platform SDK defined in the `.xcodeproj`.
description: 'The version of the platform SDK to use for building the Xcode project. Defaults to the latest version of the platform SDK defined in the `.xcodeproj`.'
required: false
export-option:
description: The export option to use for exporting the Xcode project. Can be one of `app-store-connect`, `steam`, `release-testing`, `enterprise`, `debugging`, `developer-id`, `mac-application`. Defaults to `development`
description: 'The export option to use for exporting the Xcode project. Can be one of `app-store-connect`, `steam`, `release-testing`, `enterprise`, `debugging`, `developer-id`, `mac-application`. Defaults to `development`'
required: false
default: development
default: 'development'
export-option-plist:
description: The path to custom export option plist file to use when exporting the Xcode project. Overrides `export-option`.
description: 'The path to custom export option plist file to use when exporting the Xcode project. Overrides `export-option`.'
required: false
entitlements-plist:
description: The path to custom entitlements plist file. Generates [default hardened runtime entitlements](https://developer.apple.com/documentation/security/hardened-runtime) if not provided.
description: 'The path to custom entitlements plist file. Generates [default hardened runtime entitlements](https://developer.apple.com/documentation/security/hardened-runtime) if not provided.'
required: false
notarize:
description: Whether to notarize the exported Xcode project. Defaults to `true` if `export-option !== app-store-connect`.
description: 'Whether to notarize the exported Xcode project. Defaults to `true` if `export-option !== app-store-connect`.'
required: false
archive-type:
description: The archive type to use when exporting macOS applications when not uploading to the App Store. Can be one of `app` or `pkg`. Defaults to `app`. Forces `app` if `export-option === steam`.
description: 'The archive type to use when exporting macOS applications when not uploading to the App Store. Can be one of `app` or `pkg`. Defaults to `app`. Forces `app` if `export-option === steam`.'
required: false
default: app
default: 'app'
upload:
description: Whether to upload the exported Xcode project to App Store Connect. Defaults to `true` if `export-option === app-store-connect`.
description: 'Whether to upload the exported Xcode project to App Store Connect. Defaults to `true` if `export-option === app-store-connect`.'
required: false
whats-new:
description: When `uploading === true`, Let your testers know what you would like them to test in this build. This information will be available to testers in all groups who have access to this build. Defaults to the last git commit sha, current branch name, and commit message up to 4000 characters.
description: 'When `uploading === true`, Let your testers know what you would like them to test in this build. This information will be available to testers in all groups who have access to this build. Defaults to the last git commit sha, current branch name, and commit message up to 4000 characters.'
required: false
auto-increment-build-number:
description: Whether to automatically increment the `CFBundleVersion` in the Xcode project. Defaults to `true` if `export-option === app-store-connect`.
description: 'Whether to automatically increment the `CFBundleVersion` in the Xcode project. Defaults to `true` if `export-option === app-store-connect`.'
required: false
default: 'true'
test-groups:
description: One or more test groups to automatically add to the build when uploading to TestFlight. When using multiple groups, separate them with commas. None by default.
description: 'One or more test groups to automatically add to the build when uploading to TestFlight. When using multiple groups, separate them with commas. None by default.'
required: false
submit-for-review:
description: Whether to submit the build for review when uploading to TestFlight. Defaults to `false`.
description: 'Whether to submit the build for review when uploading to TestFlight. Defaults to `false`.'
required: false
developer-id-application-certificate:
description: The `Developer ID Application` certificate encoded as base64 string. Required if `export-option === steam` or `export-option === developer-id` or `notarize === true`.
description: 'The `Developer ID Application` certificate encoded as base64 string. Required if `export-option === steam` or `export-option === developer-id` or `notarize === true`.'
required: false
developer-id-application-certificate-password:
description: The password for the `Developer ID Application` certificate. Required if `developer-id-application-certificate` is provided.
description: 'The password for the `Developer ID Application` certificate. Required if `developer-id-application-certificate` is provided.'
required: false
developer-id-installer-certificate:
description: The `Developer ID Installer` certificate encoded as base64 string. Required when creating an installer package for macOS application.
description: 'The `Developer ID Installer` certificate encoded as base64 string. Required when creating an installer package for macOS application.'
required: false
developer-id-installer-certificate-password:
description: The password for the `Developer ID Installer` certificate. Required if `developer-id-installer-certificate` is provided.
description: 'The password for the `Developer ID Installer` certificate. Required if `developer-id-installer-certificate` is provided.'
required: false
outputs:
executable:
description: The path to the generated archive executable.
output-directory:
description: The path to the export output directory.
runs:
using: 'node20'
using: 'node24'
main: 'dist/index.js'
post: 'dist/index.js'
outputs:
executable:
description: 'The path to the generated archive executable.'
output-directory:
description: 'The path to the export output directory.'
Loading
Loading