mirror of
https://github.com/chickensoft-games/setup-godot.git
synced 2025-08-15 05:15:07 +00:00
Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
92cdaf8c4a | ||
|
fe568faee5 | ||
|
8fd9028758 | ||
|
351d3975e1 | ||
|
dcb37d0557 | ||
|
95d8c7dd3b | ||
|
544697c9de | ||
|
c34870b1ad | ||
|
8659c95e57 | ||
|
7dedb68ae0 | ||
|
34950cd8ab | ||
|
46198e5e97 | ||
|
d83cb325fa | ||
|
1dc3741f47 |
20
.github/workflows/test.yml
vendored
20
.github/workflows/test.yml
vendored
@ -16,7 +16,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tests:
|
tests:
|
||||||
name: 🧪 Test on ${{ matrix.os }}, .NET=${{ matrix.use-dotnet }}
|
name: 🧪 Test on ${{ matrix.os }}, .NET=${{ matrix.use-dotnet }}, include-templates=${{ matrix.include-templates }}
|
||||||
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
|
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
@ -26,6 +26,7 @@ jobs:
|
|||||||
# Put the operating systems you want to run on here.
|
# Put the operating systems you want to run on here.
|
||||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
use-dotnet: [false, true]
|
use-dotnet: [false, true]
|
||||||
|
include-templates: [false, true]
|
||||||
env:
|
env:
|
||||||
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
||||||
DOTNET_NOLOGO: true
|
DOTNET_NOLOGO: true
|
||||||
@ -34,10 +35,10 @@ jobs:
|
|||||||
# Use bash shells on all platforms.
|
# Use bash shells on all platforms.
|
||||||
shell: bash
|
shell: bash
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
name: 🧾 Checkout
|
name: 🧾 Checkout
|
||||||
|
|
||||||
- uses: actions/setup-dotnet@v3
|
- uses: actions/setup-dotnet@v4
|
||||||
if: ${{ matrix.use-dotnet }}
|
if: ${{ matrix.use-dotnet }}
|
||||||
name: 💽 Setup .NET SDK
|
name: 💽 Setup .NET SDK
|
||||||
with:
|
with:
|
||||||
@ -50,6 +51,7 @@ jobs:
|
|||||||
# Pre-release label is optional.
|
# Pre-release label is optional.
|
||||||
version: 4.0.0
|
version: 4.0.0
|
||||||
use-dotnet: ${{ matrix.use-dotnet }}
|
use-dotnet: ${{ matrix.use-dotnet }}
|
||||||
|
include-templates: ${{ matrix.include-templates }}
|
||||||
|
|
||||||
- name: 🔬 Verify Dotnet
|
- name: 🔬 Verify Dotnet
|
||||||
if: ${{ matrix.use-dotnet }}
|
if: ${{ matrix.use-dotnet }}
|
||||||
@ -65,7 +67,7 @@ jobs:
|
|||||||
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
|
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
name: 🧾 Checkout
|
name: 🧾 Checkout
|
||||||
|
|
||||||
- uses: ./
|
- uses: ./
|
||||||
@ -83,12 +85,12 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set Node.js 16.x
|
- name: Set Node.js 20.x
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 16.x
|
node-version: 20.x
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm ci
|
run: npm ci
|
||||||
@ -108,7 +110,7 @@ jobs:
|
|||||||
id: diff
|
id: diff
|
||||||
|
|
||||||
# If index.js was different than expected, upload the expected version as an artifact
|
# If index.js was different than expected, upload the expected version as an artifact
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v4
|
||||||
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
|
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
|
||||||
with:
|
with:
|
||||||
name: dist
|
name: dist
|
||||||
|
28
README.md
28
README.md
@ -5,7 +5,7 @@
|
|||||||
Setup Godot for use with (or without) .NET on macOS, Windows, and Linux CI/CD runners.
|
Setup Godot for use with (or without) .NET on macOS, Windows, and Linux CI/CD runners.
|
||||||
|
|
||||||
- ✅ Installs Godot 4.x
|
- ✅ Installs Godot 4.x
|
||||||
- ✅ Installs export templates.
|
- ✅ Optionally installs export templates.
|
||||||
- ✅ C# supported using .NET version of Godot.
|
- ✅ C# supported using .NET version of Godot.
|
||||||
- ✅ Versions **without** .NET are also supported.
|
- ✅ Versions **without** .NET are also supported.
|
||||||
- ✅ Installs Godot directly on the CI/CD runner.
|
- ✅ Installs Godot directly on the CI/CD runner.
|
||||||
@ -38,15 +38,21 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
||||||
DOTNET_NOLOGO: true
|
DOTNET_NOLOGO: true
|
||||||
|
# Smaller cache size
|
||||||
|
NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages
|
||||||
|
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
# Use bash shells on all platforms.
|
# Use bash shells on all platforms.
|
||||||
shell: bash
|
shell: bash
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
name: 🧾 Checkout
|
name: 🧾 Checkout
|
||||||
|
# Disable fetching history as most of the time it is useless
|
||||||
|
filter: tree:0
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
- uses: actions/setup-dotnet@v3
|
- uses: actions/setup-dotnet@v4
|
||||||
name: 💽 Setup .NET SDK
|
name: 💽 Setup .NET SDK
|
||||||
with:
|
with:
|
||||||
# Use the .NET SDK from global.json in the root of the repository.
|
# Use the .NET SDK from global.json in the root of the repository.
|
||||||
@ -55,14 +61,16 @@ jobs:
|
|||||||
- name: 📦 Restore Dependencies
|
- name: 📦 Restore Dependencies
|
||||||
run: dotnet restore
|
run: dotnet restore
|
||||||
|
|
||||||
- uses: chickensoft-games/setup-godot@v1
|
- uses: chickensoft-games/setup-godot@v2
|
||||||
name: 🤖 Setup Godot
|
name: 🤖 Setup Godot
|
||||||
with:
|
with:
|
||||||
# Version must include major, minor, and patch, and be >= 4.0.0
|
# Version must include major, minor, and patch, and be >= 4.0.0
|
||||||
# Pre-release label is optional.
|
# Pre-release label is optional.
|
||||||
version: 4.0.0-beta16 # also valid: 4.0.0.rc1 or 4.0.0, etc
|
version: 4.0.0-beta16 # also valid: 4.0.0.rc1 or 4.0.0 or "global.json", etc
|
||||||
# Use .NET-enabled version of Godot (the default is also true).
|
# Use .NET-enabled version of Godot (the default is also true).
|
||||||
use-dotnet: true
|
use-dotnet: true
|
||||||
|
# Include the Godot Export Templates (the default is false).
|
||||||
|
include-templates: true
|
||||||
|
|
||||||
- name: 🔬 Verify Setup
|
- name: 🔬 Verify Setup
|
||||||
run: |
|
run: |
|
||||||
@ -73,7 +81,7 @@ jobs:
|
|||||||
run: godot --headless --build-solutions --quit || exit 0
|
run: godot --headless --build-solutions --quit || exit 0
|
||||||
|
|
||||||
- name: 🦺 Build Projects
|
- name: 🦺 Build Projects
|
||||||
run: dotnet build
|
run: dotnet build --configuration Release
|
||||||
|
|
||||||
# Do whatever you want!
|
# Do whatever you want!
|
||||||
```
|
```
|
||||||
@ -89,7 +97,7 @@ The Godot version should be specified the same as any [GodotSharp] version strin
|
|||||||
In place of a version, you can specify `global` or `global.json` to use the version of Godot specified by the project's global.json file.
|
In place of a version, you can specify `global` or `global.json` to use the version of Godot specified by the project's global.json file.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: chickensoft-games/setup-godot@v1
|
- uses: chickensoft-games/setup-godot@v2
|
||||||
name: 🤖 Setup Godot
|
name: 🤖 Setup Godot
|
||||||
with:
|
with:
|
||||||
version: global.json # use Godot version specified by global.json
|
version: global.json # use Godot version specified by global.json
|
||||||
@ -116,11 +124,11 @@ For that to work, your project must have a `global.json` file in the root direct
|
|||||||
<Project Sdk="Godot.NET.Sdk/4.0.0"> <!-- BAD -->
|
<Project Sdk="Godot.NET.Sdk/4.0.0"> <!-- BAD -->
|
||||||
```
|
```
|
||||||
|
|
||||||
[chickensoft-badge]: https://raw.githubusercontent.com/chickensoft-games/chickensoft_site/main/static/img/badges/chickensoft_badge.svg
|
[chickensoft-badge]: https://chickensoft.games/img/badges/chickensoft_badge.svg
|
||||||
[chickensoft-website]: https://chickensoft.games
|
[chickensoft-website]: https://chickensoft.games
|
||||||
[discord-badge]: https://raw.githubusercontent.com/chickensoft-games/chickensoft_site/main/static/img/badges/discord_badge.svg
|
[discord-badge]: https://chickensoft.games/img/badges/discord_badge.svg
|
||||||
[discord]: https://discord.gg/gSjaPgMmYW
|
[discord]: https://discord.gg/gSjaPgMmYW
|
||||||
[read-the-docs-badge]: https://raw.githubusercontent.com/chickensoft-games/chickensoft_site/main/static/img/badges/read_the_docs_badge.svg
|
[read-the-docs-badge]: https://chickensoft.games/img/badges/read_the_docs_badge.svg
|
||||||
[docs]: https://chickensoft.games/docs
|
[docs]: https://chickensoft.games/docs
|
||||||
[action]: ./action.yml
|
[action]: ./action.yml
|
||||||
[GodotSharp]: https://www.nuget.org/packages/GodotSharp#versions-body-tab
|
[GodotSharp]: https://www.nuget.org/packages/GodotSharp#versions-body-tab
|
||||||
|
12
action.yml
12
action.yml
@ -61,7 +61,15 @@ inputs:
|
|||||||
use-dotnet:
|
use-dotnet:
|
||||||
description: >-
|
description: >-
|
||||||
True to use the .NET-enabled version of Godot that enables C#, false to use the default version.
|
True to use the .NET-enabled version of Godot that enables C#, false to use the default version.
|
||||||
default: 'true'
|
default: true
|
||||||
|
include-templates:
|
||||||
|
description: >-
|
||||||
|
True will also download the Godot Export Templates for each platform.
|
||||||
|
default: false
|
||||||
|
cache:
|
||||||
|
description: >-
|
||||||
|
True to cache downloads.
|
||||||
|
default: true
|
||||||
runs:
|
runs:
|
||||||
using: 'node16'
|
using: 'node20'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
|
10788
dist/index.js
generated
vendored
10788
dist/index.js
generated
vendored
File diff suppressed because one or more lines are too long
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
356
dist/licenses.txt
generated
vendored
356
dist/licenses.txt
generated
vendored
@ -547,6 +547,362 @@ Apache-2.0
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
|
@protobuf-ts/runtime
|
||||||
|
(Apache-2.0 AND BSD-3-Clause)
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
|
||||||
|
@protobuf-ts/runtime-rpc
|
||||||
|
Apache-2.0
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
|
||||||
@vercel/ncc
|
@vercel/ncc
|
||||||
MIT
|
MIT
|
||||||
Copyright 2018 ZEIT, Inc.
|
Copyright 2018 ZEIT, Inc.
|
||||||
|
2
dist/sourcemap-register.js
generated
vendored
2
dist/sourcemap-register.js
generated
vendored
File diff suppressed because one or more lines are too long
9649
package-lock.json
generated
9649
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
26
package.json
26
package.json
@ -27,23 +27,23 @@
|
|||||||
"author": "",
|
"author": "",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/cache": "^3.2.2",
|
"@actions/cache": "^4.0.3",
|
||||||
"@actions/core": "^1.10.0",
|
"@actions/core": "^1.10.1",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.2",
|
||||||
"@types/normalize-path": "^3.0.0",
|
"@types/normalize-path": "^3.0.2",
|
||||||
"normalize-path": "^3.0.0"
|
"normalize-path": "^3.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^20.5.7",
|
"@types/node": "^22.15.17",
|
||||||
"@typescript-eslint/parser": "^5.62.0",
|
"@typescript-eslint/parser": "^8.32.1",
|
||||||
"@vercel/ncc": "^0.36.1",
|
"@vercel/ncc": "^0.38.3",
|
||||||
"eslint": "^8.48.0",
|
"eslint": "^9.26.0",
|
||||||
"eslint-plugin-github": "^4.7.0",
|
"eslint-plugin-github": "^6.0.0",
|
||||||
"eslint-plugin-jest": "^27.2.1",
|
"eslint-plugin-jest": "^28.11.0",
|
||||||
"jest": "^29.5.0",
|
"jest": "^29.7.0",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"prettier": "^2.8.8",
|
"prettier": "^2.8.8",
|
||||||
"ts-jest": "^29.1.0",
|
"ts-jest": "^29.3.2",
|
||||||
"typescript": "^5.2.2"
|
"typescript": "^5.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
91
src/main.ts
91
src/main.ts
@ -3,6 +3,8 @@ import * as core from '@actions/core'
|
|||||||
import * as toolsCache from '@actions/tool-cache'
|
import * as toolsCache from '@actions/tool-cache'
|
||||||
import * as fs from 'fs'
|
import * as fs from 'fs'
|
||||||
import * as os from 'os'
|
import * as os from 'os'
|
||||||
|
import * as child_process from 'child_process'
|
||||||
|
import * as process from 'process'
|
||||||
import path from 'path'
|
import path from 'path'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -25,6 +27,8 @@ async function run(platform: Platform): Promise<void> {
|
|||||||
const binRelativePath = core.getInput('bin-path').replace(/\s/g, '')
|
const binRelativePath = core.getInput('bin-path').replace(/\s/g, '')
|
||||||
const godotSharpRelease = core.getBooleanInput('godot-sharp-release')
|
const godotSharpRelease = core.getBooleanInput('godot-sharp-release')
|
||||||
const checkoutDirectory = process.env['GITHUB_WORKSPACE'] ?? ''
|
const checkoutDirectory = process.env['GITHUB_WORKSPACE'] ?? ''
|
||||||
|
const includeTemplates = core.getBooleanInput('include-templates')
|
||||||
|
const useCache = core.getBooleanInput('cache')
|
||||||
|
|
||||||
const userDir = os.homedir()
|
const userDir = os.homedir()
|
||||||
const downloadsDir = path.join(userDir, downloadsRelativePath)
|
const downloadsDir = path.join(userDir, downloadsRelativePath)
|
||||||
@ -74,12 +78,15 @@ async function run(platform: Platform): Promise<void> {
|
|||||||
)
|
)
|
||||||
const binDir = path.join(userDir, binRelativePath)
|
const binDir = path.join(userDir, binRelativePath)
|
||||||
|
|
||||||
const exportTemplateUrl = getGodotUrl(version, platform, useDotnet, true)
|
const exportTemplateUrl = includeTemplates
|
||||||
const exportTemplatePath = getExportTemplatePath(version, platform, useDotnet)
|
? getGodotUrl(version, platform, useDotnet, true)
|
||||||
const exportTemplateDownloadPath = path.join(
|
: ''
|
||||||
downloadsDir,
|
const exportTemplatePath = includeTemplates
|
||||||
'export_templates.zip'
|
? getExportTemplatePath(version, platform, useDotnet)
|
||||||
)
|
: ''
|
||||||
|
const exportTemplateDownloadPath = includeTemplates
|
||||||
|
? path.join(downloadsDir, 'export_templates.zip')
|
||||||
|
: ''
|
||||||
|
|
||||||
core.info(`🤖 Godot version: ${version}`)
|
core.info(`🤖 Godot version: ${version}`)
|
||||||
core.info(`🤖 Godot version name: ${versionName}`)
|
core.info(`🤖 Godot version name: ${versionName}`)
|
||||||
@ -90,9 +97,15 @@ async function run(platform: Platform): Promise<void> {
|
|||||||
core.info(`📥 Godot download path: ${godotDownloadPath}`)
|
core.info(`📥 Godot download path: ${godotDownloadPath}`)
|
||||||
core.info(`📦 Godot installation directory: ${installationDir}`)
|
core.info(`📦 Godot installation directory: ${installationDir}`)
|
||||||
core.info(`🤖 Godot installation path: ${godotInstallationPath}`)
|
core.info(`🤖 Godot installation path: ${godotInstallationPath}`)
|
||||||
|
|
||||||
|
if (includeTemplates) {
|
||||||
core.info(`🤖 Export Template url: ${exportTemplateUrl}`)
|
core.info(`🤖 Export Template url: ${exportTemplateUrl}`)
|
||||||
core.info(`📥 Export Template download path: ${exportTemplateDownloadPath}`)
|
core.info(`📥 Export Template download path: ${exportTemplateDownloadPath}`)
|
||||||
core.info(`🤖 Export Template Path: ${exportTemplatePath}`)
|
core.info(`🤖 Export Template Path: ${exportTemplatePath}`)
|
||||||
|
} else {
|
||||||
|
core.info(`⏭️ Skipping Export Templates.`)
|
||||||
|
}
|
||||||
|
|
||||||
core.info(`📂 Bin directory: ${binDir}`)
|
core.info(`📂 Bin directory: ${binDir}`)
|
||||||
core.info(`🤖 GodotSharp release: ${godotSharpRelease}`)
|
core.info(`🤖 GodotSharp release: ${godotSharpRelease}`)
|
||||||
core.endGroup()
|
core.endGroup()
|
||||||
@ -108,10 +121,18 @@ async function run(platform: Platform): Promise<void> {
|
|||||||
|
|
||||||
// See if Godot is already installed.
|
// See if Godot is already installed.
|
||||||
core.startGroup(`🤔 Checking if Godot is already in cache...`)
|
core.startGroup(`🤔 Checking if Godot is already in cache...`)
|
||||||
const cached = await cache.restoreCache(
|
|
||||||
[godotInstallationPath, exportTemplatePath],
|
const cachedPaths = includeTemplates
|
||||||
godotUrl
|
? [godotInstallationPath, exportTemplatePath]
|
||||||
)
|
: [godotInstallationPath]
|
||||||
|
const cacheKey = includeTemplates ? godotUrl : `${godotUrl}-no-templates`
|
||||||
|
let cached = undefined
|
||||||
|
|
||||||
|
if (useCache) {
|
||||||
|
cached = await cache.restoreCache(cachedPaths.slice(), cacheKey)
|
||||||
|
} else {
|
||||||
|
core.info(`⏭️ Not using cache`)
|
||||||
|
}
|
||||||
|
|
||||||
let executables: string[]
|
let executables: string[]
|
||||||
if (!cached) {
|
if (!cached) {
|
||||||
@ -131,27 +152,12 @@ async function run(platform: Platform): Promise<void> {
|
|||||||
core.info(`✅ Godot downloaded to ${godotDownloadedPath}`)
|
core.info(`✅ Godot downloaded to ${godotDownloadedPath}`)
|
||||||
core.endGroup()
|
core.endGroup()
|
||||||
|
|
||||||
core.startGroup(
|
|
||||||
`📥 Downloading Export Templates to ${exportTemplateDownloadPath}...`
|
|
||||||
)
|
|
||||||
|
|
||||||
// If the ZIP file already exists locally, delete it before downloading
|
|
||||||
if (fs.existsSync(exportTemplateDownloadPath))
|
|
||||||
fs.rmSync(exportTemplateDownloadPath)
|
|
||||||
|
|
||||||
const templateDownloadedPath = await toolsCache.downloadTool(
|
|
||||||
exportTemplateUrl,
|
|
||||||
exportTemplateDownloadPath
|
|
||||||
)
|
|
||||||
core.info(`✅ Export Templates downloaded to ${templateDownloadedPath}`)
|
|
||||||
core.endGroup()
|
|
||||||
|
|
||||||
// Extract Godot
|
// Extract Godot
|
||||||
core.startGroup(`📦 Extracting Godot to ${installationDir}...`)
|
core.startGroup(`📦 Extracting Godot to ${installationDir}...`)
|
||||||
|
|
||||||
// If the godot installation folder already exists, remove it before extracting the ZIP file. This will "uninstall" other installations (e.g. on version changes).
|
// If the godot installation folder already exists, remove it before extracting the ZIP file. This will "uninstall" other installations (e.g. on version changes).
|
||||||
if (fs.existsSync(installationDir))
|
if (fs.existsSync(installationDir))
|
||||||
fs.rmdirSync(installationDir, {recursive: true})
|
fs.rmSync(installationDir, {recursive: true, force: true})
|
||||||
|
|
||||||
const godotExtractedPath = await toolsCache.extractZip(
|
const godotExtractedPath = await toolsCache.extractZip(
|
||||||
godotDownloadedPath,
|
godotDownloadedPath,
|
||||||
@ -170,6 +176,22 @@ async function run(platform: Platform): Promise<void> {
|
|||||||
core.info(`✅ Files shown`)
|
core.info(`✅ Files shown`)
|
||||||
core.endGroup()
|
core.endGroup()
|
||||||
|
|
||||||
|
if (includeTemplates) {
|
||||||
|
core.startGroup(
|
||||||
|
`📥 Downloading Export Templates to ${exportTemplateDownloadPath}...`
|
||||||
|
)
|
||||||
|
|
||||||
|
// If the ZIP file already exists locally, delete it before downloading
|
||||||
|
if (fs.existsSync(exportTemplateDownloadPath))
|
||||||
|
fs.rmSync(exportTemplateDownloadPath)
|
||||||
|
|
||||||
|
const templateDownloadedPath = await toolsCache.downloadTool(
|
||||||
|
exportTemplateUrl,
|
||||||
|
exportTemplateDownloadPath
|
||||||
|
)
|
||||||
|
core.info(`✅ Export Templates downloaded to ${templateDownloadedPath}`)
|
||||||
|
core.endGroup()
|
||||||
|
|
||||||
core.startGroup(
|
core.startGroup(
|
||||||
`📦 Extracting Export Templates to ${exportTemplatePath}...`
|
`📦 Extracting Export Templates to ${exportTemplatePath}...`
|
||||||
)
|
)
|
||||||
@ -202,15 +224,15 @@ async function run(platform: Platform): Promise<void> {
|
|||||||
await findExecutablesRecursively(platform, exportTemplatePath, '')
|
await findExecutablesRecursively(platform, exportTemplatePath, '')
|
||||||
core.info(`✅ Files shown`)
|
core.info(`✅ Files shown`)
|
||||||
core.endGroup()
|
core.endGroup()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (useCache) {
|
||||||
// Save extracted Godot contents to cache
|
// Save extracted Godot contents to cache
|
||||||
core.startGroup(`💾 Saving extracted Godot download to cache...`)
|
core.startGroup(`💾 Saving extracted Godot download to cache...`)
|
||||||
await cache.saveCache(
|
await cache.saveCache(cachedPaths, cacheKey)
|
||||||
[godotInstallationPath, exportTemplatePath],
|
|
||||||
godotUrl
|
|
||||||
)
|
|
||||||
core.info(`✅ Godot saved to cache`)
|
core.info(`✅ Godot saved to cache`)
|
||||||
core.endGroup()
|
core.endGroup()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
core.info(`🎉 Previous Godot download found in cache!`)
|
core.info(`🎉 Previous Godot download found in cache!`)
|
||||||
core.endGroup()
|
core.endGroup()
|
||||||
@ -221,7 +243,6 @@ async function run(platform: Platform): Promise<void> {
|
|||||||
installationDir,
|
installationDir,
|
||||||
''
|
''
|
||||||
)
|
)
|
||||||
await findExecutablesRecursively(platform, exportTemplatePath, '')
|
|
||||||
core.info(`✅ Files shown`)
|
core.info(`✅ Files shown`)
|
||||||
core.endGroup()
|
core.endGroup()
|
||||||
}
|
}
|
||||||
@ -276,7 +297,15 @@ async function run(platform: Platform): Promise<void> {
|
|||||||
fs.mkdirSync(binDir, {recursive: true})
|
fs.mkdirSync(binDir, {recursive: true})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// `fs.linkSync` has some issues on macOS for Godot executable
|
||||||
|
// it does not create symlink at all, it copies whole file
|
||||||
|
// and corrupts it a way that Godot gets killed by kernel (Killed: 9)
|
||||||
|
if (process.platform === "darwin") {
|
||||||
|
child_process.execSync(`ln -s "${godotExecutable}" "${godotAlias}"`)
|
||||||
|
} else {
|
||||||
fs.linkSync(godotExecutable, godotAlias)
|
fs.linkSync(godotExecutable, godotAlias)
|
||||||
|
}
|
||||||
|
|
||||||
core.info(`✅ Symlink to Godot created`)
|
core.info(`✅ Symlink to Godot created`)
|
||||||
const godotSharpDirAlias = path.join(binDir, 'GodotSharp')
|
const godotSharpDirAlias = path.join(binDir, 'GodotSharp')
|
||||||
if (useDotnet) {
|
if (useDotnet) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user