Skip to content

Commit 68e93f3

Browse files
authored
feat: unify addressable and non-addressable workflows (#37)
BREAKING CHANGE: The ISceneManager, ISceneLoader and ILoadSceneInfo interfaces have been changed to accomodate the unification of addressable and non-addressable workflows. Refer to the migration guide at https://github.com/mygamedevtools/scene-loader/wiki/Migration-Guide-3.x for more details
1 parent 7017447 commit 68e93f3

File tree

149 files changed

+3096
-3402
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+3096
-3402
lines changed

.github/workflows/release-pre.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: 🚀 Release (Preview)
2+
on:
3+
push:
4+
branches:
5+
- 'feat/**'
6+
- 'fix/**'
7+
paths-ignore:
8+
- '**.md'
9+
10+
jobs:
11+
create-preview-release:
12+
name: Pre Release
13+
uses: ./.github/workflows/release-template.yml
14+
with:
15+
blockPullRequestRelease: false
16+
blockReleaseCommit: true
17+
secrets:
18+
githubToken: ${{ secrets.GH_TOKEN }}
19+
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: 🚀 Release Package
2+
on:
3+
workflow_call:
4+
inputs:
5+
blockPullRequestRelease:
6+
required: false
7+
type: boolean
8+
default: true
9+
blockReleaseCommit:
10+
required: false
11+
type: boolean
12+
dryRun:
13+
required: false
14+
type: boolean
15+
secrets:
16+
githubToken:
17+
required: true
18+
19+
jobs:
20+
semantic-release:
21+
runs-on: ubuntu-latest
22+
outputs:
23+
new_release_published: ${{ steps.release.outputs.new_release_published }}
24+
new_release_version: ${{ steps.release.outputs.new_release_version }}
25+
steps:
26+
- name: 📂 Checkout
27+
uses: actions/checkout@v4
28+
with:
29+
fetch-depth: 0
30+
persist-credentials: false
31+
# Removes the git plugin from semantic release so it doesn't generate a new commit
32+
- name: ✂️ Disable semantic release commit
33+
if: ${{ inputs.blockReleaseCommit == true }}
34+
run: |
35+
cat .releaserc.json | jq 'del(.plugins[] | select(type == "array" and .[0] == "@semantic-release/git"))' .releaserc.json > .releaserc.json.tmp && mv .releaserc.json.tmp .releaserc.json
36+
- name: 🚀 Semantic Release
37+
id: release
38+
uses: cycjimmy/semantic-release-action@v4
39+
with:
40+
dry_run: ${{ inputs.dryRun }}
41+
ci: ${{ inputs.blockPullRequestRelease }}
42+
env:
43+
GH_TOKEN: ${{ secrets.githubToken }}
44+
- name: 📄 Summary
45+
run: |
46+
if [ '${{ steps.release.outputs.new_release_published }}' == 'true' ] && [ '${{ inputs.dryRun }}' == 'false' ]; then
47+
echo "ℹ️ Released version \`${{ steps.release.outputs.new_release_version }}\`" | tee -a $GITHUB_STEP_SUMMARY
48+
else
49+
echo "ℹ️ No version released" | tee -a $GITHUB_STEP_SUMMARY
50+
fi
51+
52+
package-upm:
53+
runs-on: ubuntu-latest
54+
needs: 'semantic-release'
55+
if: ${{ needs.semantic-release.outputs.new_release_published == 'true' && inputs.dryRun == false }}
56+
env:
57+
releaseVersion: ${{ needs.semantic-release.outputs.new_release_version }}
58+
steps:
59+
- name: 📂 Checkout
60+
uses: actions/checkout@v4
61+
with:
62+
fetch-depth: 0
63+
- name: 📤 Extract Path
64+
id: extract-path
65+
run: |
66+
PACKAGE_PATH=$(jq -r '.plugins[] | select(type == "array" and .[0] == "@semantic-release/npm") | .[1].pkgRoot' .releaserc.json)
67+
echo "PACKAGE_PATH=$PACKAGE_PATH" >> $GITHUB_ENV
68+
- name: ✏️ Update package.json
69+
run: |
70+
jq '.version = "${{ env.releaseVersion }}"' $PACKAGE_PATH/package.json > package.json.tmp && mv package.json.tmp $PACKAGE_PATH/package.json
71+
- name: 📦 Package UPM Branch
72+
id: package_upm
73+
run: |
74+
git config --global user.name 'semantic-release-bot'
75+
git config --global user.email 'semantic-release-bot@martynus.net'
76+
git commit -am "update package.json"
77+
git branch -d upm &> /dev/null || echo upm branch not found
78+
git subtree split -P "$PACKAGE_PATH" -b upm
79+
git checkout upm
80+
if [[ -d "Samples" ]]; then
81+
git mv Samples Samples~
82+
rm -f Samples.meta
83+
git commit -am "fix: Samples => Samples~"
84+
fi
85+
git push -f -u origin upm
86+
- name: 🏷️ Create UPM Tag
87+
run: |
88+
git tag $TAG upm
89+
git push origin --tags
90+
env:
91+
TAG: upm/${{ env.releaseVersion }}

.github/workflows/release.yml

Lines changed: 10 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,14 @@
1-
name: Release
1+
name: 🚀 Release
22
on:
33
push:
44
branches:
5-
- main
5+
- 'main'
6+
paths-ignore:
7+
- '**.md'
8+
69
jobs:
7-
release:
8-
name: release
9-
runs-on: ubuntu-latest
10-
steps:
11-
- uses: actions/checkout@v3
12-
with:
13-
fetch-depth: 0
14-
persist-credentials: false
15-
- name: Semantic Release
16-
id: semantic
17-
uses: cycjimmy/semantic-release-action@v3.1.2
18-
with:
19-
extra_plugins: |
20-
@semantic-release/changelog
21-
@semantic-release/git
22-
branch: main
23-
env:
24-
GH_TOKEN: ${{ secrets.GH_TOKEN }}
25-
- name: Post Release Checkout
26-
id: post_release
27-
uses: actions/checkout@v3
28-
if: steps.semantic.outputs.new_release_published == 'true'
29-
with:
30-
ref: ${{ steps.semantic.outputs.new_release_version }}
31-
- name: Split UPM Branch
32-
id: split_upm
33-
if: steps.post_release.outcome == 'success'
34-
run: |
35-
git branch -d upm &> /dev/null || echo upm branch not found
36-
git subtree split -P "$PKG_ROOT" -b upm
37-
git checkout upm
38-
if [[ -d "Samples" ]]; then
39-
git mv Samples Samples~
40-
rm -f Samples.meta
41-
git config --global user.name 'github-bot'
42-
git config --global user.email 'github-bot@users.noreply.github.com'
43-
git commit -am "fix: Samples => Samples~"
44-
fi
45-
git push -f -u origin upm
46-
env:
47-
PKG_ROOT: Packages/mygamedevtools-scene-loader
48-
- name: Create UPM Tag
49-
if: steps.split_upm.outcome == 'success'
50-
run: |
51-
git tag $TAG upm
52-
git push origin --tags
53-
env:
54-
TAG: upm/${{ steps.semantic.outputs.new_release_version }}
10+
create-release:
11+
name: Release
12+
uses: ./.github/workflows/release-template.yml
13+
secrets:
14+
githubToken: ${{ secrets.GH_TOKEN }}

.github/workflows/test.yml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
name: Test
2-
1+
name: 🧪 Tests
32
on:
43
push:
54
branches:
65
- main
6+
paths-ignore:
7+
- '**.md'
78
pull_request:
89
branches:
910
- main
11+
paths-ignore:
12+
- '**.md'
1013

1114
jobs:
1215
test:
@@ -15,18 +18,16 @@ jobs:
1518
strategy:
1619
fail-fast: false
1720
matrix:
18-
project-path:
19-
- ./
2021
testMode:
2122
- playmode
2223
steps:
23-
- uses: actions/checkout@v3
24+
- uses: actions/checkout@v4
2425
with:
2526
lfs: true
26-
- uses: actions/cache@v3
27+
- uses: actions/cache@v4
2728
with:
28-
path: ${{ matrix.project-path }}/Library
29-
key: Library-${{ matrix.project-path }}
29+
path: Library
30+
key: Library
3031
restore-keys: |
3132
Library-
3233
- uses: game-ci/unity-test-runner@v4
@@ -36,14 +37,14 @@ jobs:
3637
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
3738
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
3839
with:
39-
projectPath: ${{ matrix.project-path }}
40+
projectPath: ./
4041
testMode: ${{ matrix.testMode }}
4142
artifactsPath: ${{ matrix.testMode }}-artifacts
4243
githubToken: ${{ secrets.GITHUB_TOKEN }}
4344
checkName: ${{ matrix.testMode }} Test Results
4445
coverageOptions: 'generateAdditionalMetrics;assemblyFilters:+MyGameDevTools.SceneLoading'
4546
- name: Upload Coverage to Codecov
46-
uses: codecov/codecov-action@v3
47+
uses: codecov/codecov-action@v4
4748
with:
4849
name: PlayMode
4950
token: ${{ secrets.CODECOV_TOKEN }}

.releaserc.json

Lines changed: 47 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,53 @@
11
{
2+
"branches": [
3+
"main",
4+
{
5+
"name": "feat/*",
6+
"prerelease": "pre"
7+
},
8+
{
9+
"name": "fix/*",
10+
"prerelease": "pre"
11+
}
12+
],
213
"tagFormat": "${version}",
314
"plugins": [
4-
["@semantic-release/commit-analyzer", { "preset": "angular" }],
15+
[
16+
"@semantic-release/commit-analyzer",
17+
{
18+
"preset": "angular"
19+
}
20+
],
521
"@semantic-release/release-notes-generator",
6-
["@semantic-release/changelog", {
7-
"changelogTitle": "# Changelog"
8-
}],
9-
["@semantic-release/npm", { "npmPublish": false, "pkgRoot": "Packages/mygamedevtools-scene-loader" }],
10-
["@semantic-release/git", {
11-
"assets": ["Packages/mygamedevtools-scene-loader/package.json", "CHANGELOG.md"],
12-
"message": "ci(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
13-
}],
14-
"@semantic-release/github"
22+
[
23+
"@semantic-release/changelog",
24+
{
25+
"changelogTitle": "# Changelog"
26+
}
27+
],
28+
[
29+
"@semantic-release/npm",
30+
{
31+
"npmPublish": false,
32+
"pkgRoot": "Packages/com.mygamedevtools.scene-loader",
33+
"tarballDir": "dist"
34+
}
35+
],
36+
[
37+
"@semantic-release/git",
38+
{
39+
"assets": [
40+
"Packages/com.mygamedevtools.scene-loader/package.json",
41+
"CHANGELOG.md"
42+
],
43+
"message": "ci(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
44+
}
45+
],
46+
[
47+
"@semantic-release/github",
48+
{
49+
"assets": "dist/*.tgz"
50+
}
51+
]
1552
]
1653
}

Assets/AddressableAssetsData/AssetGroups/Built In Data.asset

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,9 @@ MonoBehaviour:
1313
m_Name: Built In Data
1414
m_EditorClassIdentifier:
1515
m_GroupName: Built In Data
16-
m_Data:
17-
m_SerializedData: []
1816
m_GUID: 69e2a0fa8a80ce6419d62220d3567314
19-
m_SerializeEntries:
20-
- m_GUID: Resources
21-
m_Address: Resources
22-
m_ReadOnly: 1
23-
m_SerializedLabels: []
24-
FlaggedDuringContentUpdateRestriction: 0
25-
- m_GUID: EditorSceneList
26-
m_Address: EditorSceneList
27-
m_ReadOnly: 1
28-
m_SerializedLabels: []
29-
FlaggedDuringContentUpdateRestriction: 0
17+
m_SerializeEntries: []
3018
m_ReadOnly: 1
3119
m_Settings: {fileID: 11400000, guid: 4fd7c678d1436b34a865a71c5991863a, type: 2}
3220
m_SchemaSet:
33-
m_Schemas:
34-
- {fileID: 11400000, guid: 7750edb8c58ebd04185cc1da949ab023, type: 2}
21+
m_Schemas: []

Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ MonoBehaviour:
1313
m_Name: Default Local Group
1414
m_EditorClassIdentifier:
1515
m_GroupName: Default Local Group
16-
m_Data:
17-
m_SerializedData: []
1816
m_GUID: 0d3a67d625bcc714ab7f6841b976b661
1917
m_SerializeEntries: []
2018
m_ReadOnly: 0
2119
m_Settings: {fileID: 11400000, guid: 4fd7c678d1436b34a865a71c5991863a, type: 2}
2220
m_SchemaSet:
2321
m_Schemas:
24-
- {fileID: 11400000, guid: edc8f0ba39310194bb6a99379a51c2fc, type: 2}
2522
- {fileID: 11400000, guid: 59687c0da6aab784897f7abeeeeea606, type: 2}
23+
- {fileID: 11400000, guid: edc8f0ba39310194bb6a99379a51c2fc, type: 2}

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
# [3.0.0-pre.8](https://github.com/mygamedevtools/scene-loader/compare/3.0.0-pre.7...3.0.0-pre.8) (2024-06-15)
4+
5+
6+
### Bug Fixes
7+
8+
* add addressable preprocessor to scenedatabuilder ([7720e1e](https://github.com/mygamedevtools/scene-loader/commit/7720e1e3f3c97c2f93ab9cf83f314f79b77f0e9f))
9+
* test reusable workflow ([575af28](https://github.com/mygamedevtools/scene-loader/commit/575af284a41ae4a654a7a0d591661911d0a5e1bb))
10+
311
## [2.3.2](https://github.com/mygamedevtools/scene-loader/compare/2.3.1...2.3.2) (2024-03-04)
412

513

0 commit comments

Comments
 (0)