mirror of
https://github.com/Cysharp/UniTask.git
synced 2026-05-28 19:48:53 +00:00
Compare commits
9 Commits
b02876e1df
...
2c20cf1e5d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2c20cf1e5d | ||
|
|
f213ff497e | ||
|
|
7568061eda | ||
|
|
459a572c1d | ||
|
|
06067cd4c8 | ||
|
|
d9983cfe27 | ||
|
|
70eb7cd3ee | ||
|
|
cc3c70af90 | ||
|
|
8042b29ff8 |
41
.editorconfig
Normal file
41
.editorconfig
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# top-most EditorConfig file
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
# Visual Studio Spell checker configs (https://learn.microsoft.com/en-us/visualstudio/ide/text-spell-checker?view=vs-2022#how-to-customize-the-spell-checker)
|
||||||
|
spelling_exclusion_path = ./exclusion.dic
|
||||||
|
|
||||||
|
[*.cs]
|
||||||
|
indent_size = 4
|
||||||
|
charset = utf-8-bom
|
||||||
|
end_of_line = unset
|
||||||
|
|
||||||
|
# Solution files
|
||||||
|
[*.{sln,slnx}]
|
||||||
|
end_of_line = unset
|
||||||
|
|
||||||
|
# MSBuild project files
|
||||||
|
[*.{csproj,props,targets}]
|
||||||
|
end_of_line = unset
|
||||||
|
|
||||||
|
# Xml config files
|
||||||
|
[*.{ruleset,config,nuspec,resx,runsettings,DotSettings}]
|
||||||
|
end_of_line = unset
|
||||||
|
|
||||||
|
[*{_AssemblyInfo.cs,.notsupported.cs}]
|
||||||
|
generated_code = true
|
||||||
|
|
||||||
|
# C# code style settings
|
||||||
|
[*.{cs}]
|
||||||
|
dotnet_diagnostic.IDE0044.severity = none # IDE0044: Make field readonly
|
||||||
|
|
||||||
|
# https://stackoverflow.com/questions/79195382/how-to-disable-fading-unused-methods-in-visual-studio-2022-17-12-0
|
||||||
|
dotnet_diagnostic.IDE0051.severity = none # IDE0051: Remove unused private member
|
||||||
|
dotnet_diagnostic.IDE0130.severity = none # IDE0130: Namespace does not match folder structure
|
||||||
5
.github/dependabot.yaml
vendored
5
.github/dependabot.yaml
vendored
@@ -5,3 +5,8 @@ updates:
|
|||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly" # Check for updates to GitHub Actions every week
|
interval: "weekly" # Check for updates to GitHub Actions every week
|
||||||
|
ignore:
|
||||||
|
# I just want update action when major/minor version is updated. patch updates are too noisy.
|
||||||
|
- dependency-name: '*'
|
||||||
|
update-types:
|
||||||
|
- version-update:semver-patch
|
||||||
|
|||||||
@@ -10,10 +10,12 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-dotnet:
|
build-dotnet:
|
||||||
runs-on: ubuntu-latest
|
permissions:
|
||||||
|
contents: read
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: Cysharp/Actions/.github/actions/checkout@main
|
||||||
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
||||||
- run: dotnet build -c Debug
|
- run: dotnet build -c Debug
|
||||||
- run: dotnet test -c Debug
|
- run: dotnet test -c Debug
|
||||||
@@ -25,21 +27,23 @@ jobs:
|
|||||||
max-parallel: 2
|
max-parallel: 2
|
||||||
matrix:
|
matrix:
|
||||||
unity: ["2022.3.39f1", "6000.0.12f1"] # Test with LTS
|
unity: ["2022.3.39f1", "6000.0.12f1"] # Test with LTS
|
||||||
runs-on: ubuntu-latest
|
permissions:
|
||||||
timeout-minutes: 20
|
contents: read
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
timeout-minutes: 30 # Unity build takes more than 20min.
|
||||||
steps:
|
steps:
|
||||||
- name: Load secrets
|
- name: Load secrets
|
||||||
id: op-load-secret
|
id: op-load-secret
|
||||||
uses: 1password/load-secrets-action@v2
|
uses: 1password/load-secrets-action@581a835fb51b8e7ec56b71cf2ffddd7e68bb25e0 # v2.0.0
|
||||||
with:
|
with:
|
||||||
export-env: false
|
export-env: false
|
||||||
env:
|
env:
|
||||||
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN_PUBLIC }}
|
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN_PUBLIC }}
|
||||||
UNITY_EMAIL: "op://GitHubActionsPublic/UNITY_LICENSE/username"
|
UNITY_EMAIL: "op://${{ vars.OP_VAULT_ACTIONS_PUBLIC }}/UNITY_LICENSE/username"
|
||||||
UNITY_PASSWORD: "op://GitHubActionsPublic/UNITY_LICENSE/credential"
|
UNITY_PASSWORD: "op://${{ vars.OP_VAULT_ACTIONS_PUBLIC }}/UNITY_LICENSE/credential"
|
||||||
UNITY_SERIAL: "op://GitHubActionsPublic/UNITY_LICENSE/serial"
|
UNITY_SERIAL: "op://${{ vars.OP_VAULT_ACTIONS_PUBLIC }}/UNITY_LICENSE/serial"
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
- uses: Cysharp/Actions/.github/actions/checkout@main
|
||||||
|
|
||||||
# Execute scripts: Export Package
|
# Execute scripts: Export Package
|
||||||
# /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod PackageExporter.Export
|
# /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod PackageExporter.Export
|
||||||
@@ -56,10 +60,6 @@ jobs:
|
|||||||
targetPlatform: StandaloneLinux64
|
targetPlatform: StandaloneLinux64
|
||||||
buildMethod: PackageExporter.Export
|
buildMethod: PackageExporter.Export
|
||||||
|
|
||||||
- uses: Cysharp/Actions/.github/actions/check-metas@main # check meta files
|
|
||||||
with:
|
|
||||||
directory: src/UniTask
|
|
||||||
|
|
||||||
# Execute UnitTest
|
# Execute UnitTest
|
||||||
# /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod UnitTestBuilder.BuildUnitTest /headless /ScriptBackend IL2CPP /BuildTarget StandaloneLinux64
|
# /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod UnitTestBuilder.BuildUnitTest /headless /ScriptBackend IL2CPP /BuildTarget StandaloneLinux64
|
||||||
- name: Build UnitTest (IL2CPP)
|
- name: Build UnitTest (IL2CPP)
|
||||||
@@ -79,6 +79,10 @@ jobs:
|
|||||||
- name: Execute UnitTest
|
- name: Execute UnitTest
|
||||||
run: ./src/UniTask/bin/UnitTest/StandaloneLinux64_IL2CPP/test
|
run: ./src/UniTask/bin/UnitTest/StandaloneLinux64_IL2CPP/test
|
||||||
|
|
||||||
|
- uses: Cysharp/Actions/.github/actions/check-metas@main # check meta files
|
||||||
|
with:
|
||||||
|
directory: src/UniTask
|
||||||
|
|
||||||
# Store artifacts.
|
# Store artifacts.
|
||||||
- uses: Cysharp/Actions/.github/actions/upload-artifact@main
|
- uses: Cysharp/Actions/.github/actions/upload-artifact@main
|
||||||
if: ${{ startsWith(matrix.unity, '2021') }} # only execute 2021
|
if: ${{ startsWith(matrix.unity, '2021') }} # only execute 2021
|
||||||
@@ -8,24 +8,27 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
run-docfx:
|
run-docfx:
|
||||||
runs-on: ubuntu-latest
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pages: write
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: Cysharp/Actions/.github/actions/checkout@main
|
||||||
- uses: actions/checkout@v4
|
- uses: Cysharp/Actions/.github/actions/checkout@main
|
||||||
with:
|
with:
|
||||||
repository: Cysharp/DocfxTemplate
|
repository: Cysharp/DocfxTemplate
|
||||||
path: docs/_DocfxTemplate
|
path: docs/_DocfxTemplate
|
||||||
- uses: Kirbyrawr/docfx-action@master
|
- uses: Kirbyrawr/docfx-action@db9a22c8fe1e8693a2a21be54cb0b87dfaa72cc4
|
||||||
name: Docfx metadata
|
name: Docfx metadata
|
||||||
with:
|
with:
|
||||||
args: metadata docs/docfx.json
|
args: metadata docs/docfx.json
|
||||||
- uses: Kirbyrawr/docfx-action@master
|
- uses: Kirbyrawr/docfx-action@db9a22c8fe1e8693a2a21be54cb0b87dfaa72cc4
|
||||||
name: Docfx build
|
name: Docfx build
|
||||||
with:
|
with:
|
||||||
args: build docs/docfx.json
|
args: build docs/docfx.json
|
||||||
- name: Publish to GitHub Pages
|
- name: Publish to GitHub Pages
|
||||||
uses: peaceiris/actions-gh-pages@v4
|
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
publish_dir: docs/_site
|
publish_dir: docs/_site
|
||||||
@@ -14,6 +14,9 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update-packagejson:
|
update-packagejson:
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
contents: write
|
||||||
uses: Cysharp/Actions/.github/workflows/update-packagejson.yaml@main
|
uses: Cysharp/Actions/.github/workflows/update-packagejson.yaml@main
|
||||||
with:
|
with:
|
||||||
file-path: ./src/UniTask/Assets/Plugins/UniTask/package.json
|
file-path: ./src/UniTask/Assets/Plugins/UniTask/package.json
|
||||||
@@ -22,11 +25,13 @@ jobs:
|
|||||||
|
|
||||||
build-dotnet:
|
build-dotnet:
|
||||||
needs: [update-packagejson]
|
needs: [update-packagejson]
|
||||||
runs-on: ubuntu-latest
|
permissions:
|
||||||
|
contents: read
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- run: echo ${{ needs.update-packagejson.outputs.sha }}
|
- run: echo ${{ needs.update-packagejson.outputs.sha }}
|
||||||
- uses: actions/checkout@v4
|
- uses: Cysharp/Actions/.github/actions/checkout@main
|
||||||
with:
|
with:
|
||||||
ref: ${{ needs.update-packagejson.outputs.sha }}
|
ref: ${{ needs.update-packagejson.outputs.sha }}
|
||||||
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
||||||
@@ -46,22 +51,24 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
unity: ["2022.3.39f1"]
|
unity: ["2022.3.39f1"]
|
||||||
runs-on: ubuntu-latest
|
permissions:
|
||||||
|
contents: read
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
timeout-minutes: 15
|
timeout-minutes: 15
|
||||||
steps:
|
steps:
|
||||||
- name: Load secrets
|
- name: Load secrets
|
||||||
id: op-load-secret
|
id: op-load-secret
|
||||||
uses: 1password/load-secrets-action@v2
|
uses: 1password/load-secrets-action@581a835fb51b8e7ec56b71cf2ffddd7e68bb25e0 # v2.0.0
|
||||||
with:
|
with:
|
||||||
export-env: false
|
export-env: false
|
||||||
env:
|
env:
|
||||||
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN_PUBLIC }}
|
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN_PUBLIC }}
|
||||||
UNITY_EMAIL: "op://GitHubActionsPublic/UNITY_LICENSE/username"
|
UNITY_EMAIL: "op://${{ vars.OP_VAULT_ACTIONS_PUBLIC }}/UNITY_LICENSE/username"
|
||||||
UNITY_PASSWORD: "op://GitHubActionsPublic/UNITY_LICENSE/credential"
|
UNITY_PASSWORD: "op://${{ vars.OP_VAULT_ACTIONS_PUBLIC }}/UNITY_LICENSE/credential"
|
||||||
UNITY_SERIAL: "op://GitHubActionsPublic/UNITY_LICENSE/serial"
|
UNITY_SERIAL: "op://${{ vars.OP_VAULT_ACTIONS_PUBLIC }}/UNITY_LICENSE/serial"
|
||||||
|
|
||||||
- run: echo ${{ needs.update-packagejson.outputs.sha }}
|
- run: echo ${{ needs.update-packagejson.outputs.sha }}
|
||||||
- uses: actions/checkout@v4
|
- uses: Cysharp/Actions/.github/actions/checkout@main
|
||||||
with:
|
with:
|
||||||
ref: ${{ needs.update-packagejson.outputs.sha }}
|
ref: ${{ needs.update-packagejson.outputs.sha }}
|
||||||
# Execute scripts: Export Package
|
# Execute scripts: Export Package
|
||||||
@@ -92,6 +99,8 @@ jobs:
|
|||||||
# release
|
# release
|
||||||
create-release:
|
create-release:
|
||||||
needs: [update-packagejson, build-dotnet, build-unity]
|
needs: [update-packagejson, build-dotnet, build-unity]
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
uses: Cysharp/Actions/.github/workflows/create-release.yaml@main
|
uses: Cysharp/Actions/.github/workflows/create-release.yaml@main
|
||||||
with:
|
with:
|
||||||
commit-id: ${{ needs.update-packagejson.outputs.sha }}
|
commit-id: ${{ needs.update-packagejson.outputs.sha }}
|
||||||
@@ -105,6 +114,8 @@ jobs:
|
|||||||
cleanup:
|
cleanup:
|
||||||
if: ${{ needs.update-packagejson.outputs.is-branch-created == 'true' }}
|
if: ${{ needs.update-packagejson.outputs.is-branch-created == 'true' }}
|
||||||
needs: [update-packagejson, build-dotnet, build-unity]
|
needs: [update-packagejson, build-dotnet, build-unity]
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
uses: Cysharp/Actions/.github/workflows/clean-packagejson-branch.yaml@main
|
uses: Cysharp/Actions/.github/workflows/clean-packagejson-branch.yaml@main
|
||||||
with:
|
with:
|
||||||
branch: ${{ needs.update-packagejson.outputs.branch-name }}
|
branch: ${{ needs.update-packagejson.outputs.branch-name }}
|
||||||
@@ -7,4 +7,6 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
detect:
|
detect:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
uses: Cysharp/Actions/.github/workflows/prevent-github-change.yaml@main
|
uses: Cysharp/Actions/.github/workflows/prevent-github-change.yaml@main
|
||||||
@@ -7,4 +7,8 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
stale:
|
stale:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pull-requests: write
|
||||||
|
issues: write
|
||||||
uses: Cysharp/Actions/.github/workflows/stale-issue.yaml@main
|
uses: Cysharp/Actions/.github/workflows/stale-issue.yaml@main
|
||||||
15
.github/workflows/toc.yaml
vendored
Normal file
15
.github/workflows/toc.yaml
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
name: TOC Generator
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- 'README.md'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
toc:
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
uses: Cysharp/Actions/.github/workflows/toc-generator.yaml@main
|
||||||
|
with:
|
||||||
|
TOC_TITLE: "## Table of Contents"
|
||||||
|
secrets: inherit
|
||||||
15
.github/workflows/toc.yml
vendored
15
.github/workflows/toc.yml
vendored
@@ -1,15 +0,0 @@
|
|||||||
name: TOC Generator
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths:
|
|
||||||
- 'README.md'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
generateTOC:
|
|
||||||
name: TOC Generator
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: technote-space/toc-generator@v4.3.1
|
|
||||||
with:
|
|
||||||
TOC_TITLE: "## Table of Contents"
|
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
#if UNITASK_TEXTMESHPRO_SUPPORT
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Threading;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
namespace Cysharp.Threading.Tasks
|
||||||
|
{
|
||||||
|
public static partial class TextMeshProAsyncExtensions
|
||||||
|
{
|
||||||
|
public static IAsyncValueChangedEventHandler<int> GetAsyncValueChangedEventHandler(this TMP_Dropdown dropdown)
|
||||||
|
{
|
||||||
|
return new AsyncUnityEventHandler<int>(dropdown.onValueChanged, dropdown.GetCancellationTokenOnDestroy(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IAsyncValueChangedEventHandler<int> GetAsyncValueChangedEventHandler(this TMP_Dropdown dropdown, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
return new AsyncUnityEventHandler<int>(dropdown.onValueChanged, cancellationToken, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static UniTask<int> OnValueChangedAsync(this TMP_Dropdown dropdown)
|
||||||
|
{
|
||||||
|
return new AsyncUnityEventHandler<int>(dropdown.onValueChanged, dropdown.GetCancellationTokenOnDestroy(), true).OnInvokeAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static UniTask<int> OnValueChangedAsync(this TMP_Dropdown dropdown, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
return new AsyncUnityEventHandler<int>(dropdown.onValueChanged, cancellationToken, true).OnInvokeAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IUniTaskAsyncEnumerable<int> OnValueChangedAsAsyncEnumerable(this TMP_Dropdown dropdown)
|
||||||
|
{
|
||||||
|
return new UnityEventHandlerAsyncEnumerable<int>(dropdown.onValueChanged, dropdown.GetCancellationTokenOnDestroy());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IUniTaskAsyncEnumerable<int> OnValueChangedAsAsyncEnumerable(this TMP_Dropdown dropdown, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
return new UnityEventHandlerAsyncEnumerable<int>(dropdown.onValueChanged, cancellationToken);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b858132b120c42b99cac55fd06dd32d3
|
||||||
|
timeCreated: 1736165018
|
||||||
Reference in New Issue
Block a user