From 6a07700544cf55ed67340a1a02d5f383dcc50931 Mon Sep 17 00:00:00 2001 From: Nik Ho Date: Thu, 6 Jun 2024 14:55:56 +1200 Subject: [PATCH 01/10] feat: add sdk version info helper Co-authored-by: Carl Menezes --- .../Scripts/Private/Helpers/SdkVersionInfoHelpers.cs | 10 ++++++++++ .../Private/Helpers/SdkVersionInfoHelpers.cs.meta | 11 +++++++++++ .../Scripts/Private/Model/Request/VersionInfo.cs | 1 + .../Passport/Runtime/Scripts/Private/PassportImpl.cs | 1 + 4 files changed, 23 insertions(+) create mode 100644 src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs create mode 100644 src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs.meta diff --git a/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs b/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs new file mode 100644 index 000000000..baf53d3cd --- /dev/null +++ b/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs @@ -0,0 +1,10 @@ +namespace Immutable.Passport.Helpers +{ + public class SdkVersionInfoHelpers + { + public static string GetSdkVersionInfo() + { + return "__ENGINE_SDK_VERSION__"; + } + } +} diff --git a/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs.meta b/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs.meta new file mode 100644 index 000000000..b756b82de --- /dev/null +++ b/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cf750b4fcec324f1ab04ca82bdc4e921 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Packages/Passport/Runtime/Scripts/Private/Model/Request/VersionInfo.cs b/src/Packages/Passport/Runtime/Scripts/Private/Model/Request/VersionInfo.cs index de8c85944..b743e6074 100644 --- a/src/Packages/Passport/Runtime/Scripts/Private/Model/Request/VersionInfo.cs +++ b/src/Packages/Passport/Runtime/Scripts/Private/Model/Request/VersionInfo.cs @@ -7,6 +7,7 @@ public class VersionInfo { public string engine; public string engineVersion; + public string engineSdkVersion; public string platform; public string platformVersion; public string deviceModel; diff --git a/src/Packages/Passport/Runtime/Scripts/Private/PassportImpl.cs b/src/Packages/Passport/Runtime/Scripts/Private/PassportImpl.cs index 72c499226..1029d64d9 100644 --- a/src/Packages/Passport/Runtime/Scripts/Private/PassportImpl.cs +++ b/src/Packages/Passport/Runtime/Scripts/Private/PassportImpl.cs @@ -60,6 +60,7 @@ public async UniTask Init(string clientId, string environment, string redirectUr { engine = "unity", engineVersion = Application.unityVersion, + engineSdkVersion = SdkVersionInfoHelpers.GetSdkVersionInfo(), platform = Application.platform.ToString(), platformVersion = SystemInfo.operatingSystem, deviceModel = SystemInfo.deviceModel From d088a0915fcabc60e271699fa73ccefa881fd0c3 Mon Sep 17 00:00:00 2001 From: Nik Ho Date: Thu, 6 Jun 2024 14:56:36 +1200 Subject: [PATCH 02/10] feat: add version string replace into update-version workflow --- .github/workflows/update-version.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml index a360fe3e3..85202d7c5 100644 --- a/.github/workflows/update-version.yml +++ b/.github/workflows/update-version.yml @@ -32,6 +32,13 @@ jobs: VERSION=${{ github.event.inputs.version }} jq --arg version "$VERSION" '.version = $version' "./src/Packages/Passport/package.json" > tmp.$$.json && mv tmp.$$.json "./src/Packages/Passport/package.json" + - name: Replace engine sdk version string + id: replace_engine_sdk_version + run: | + FILE=./src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs + VERSION=${{ github.event.inputs.version }} + sed -i "s/__ENGINE_SDK_VERSION__/$VERSION/g" $FILE + - uses: gr2m/create-or-update-pull-request-action@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 9057273f3d9e9380dea6282984ac42682ae43d67 Mon Sep 17 00:00:00 2001 From: Nik Ho Date: Thu, 6 Jun 2024 15:27:52 +1200 Subject: [PATCH 03/10] fix: workflow ci errors --- .github/workflows/tag.yml | 4 +--- .github/workflows/update-version.yml | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml index 7f086c02b..484b02a8c 100644 --- a/.github/workflows/tag.yml +++ b/.github/workflows/tag.yml @@ -24,9 +24,7 @@ jobs: - name: Extract version from package.json id: extract_version - run: | - VERSION=$(jq -r .version ./src/Packages/Passport/package.json) - echo "VERSION=$VERSION" >> $GITHUB_ENV + run: echo "VERSION=$(jq -r .version ./src/Packages/Passport/package.json)" >> $GITHUB_ENV - name: Create Tag uses: negz/create-tag@v1 diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml index 85202d7c5..c4898783b 100644 --- a/.github/workflows/update-version.yml +++ b/.github/workflows/update-version.yml @@ -30,7 +30,7 @@ jobs: run: | FILE=./src/Packages/Passport/package.json VERSION=${{ github.event.inputs.version }} - jq --arg version "$VERSION" '.version = $version' "./src/Packages/Passport/package.json" > tmp.$$.json && mv tmp.$$.json "./src/Packages/Passport/package.json" + jq --arg version "$VERSION" '.version = $version' $FILE > tmp.$$.json && mv tmp.$$.json $FILE - name: Replace engine sdk version string id: replace_engine_sdk_version From 7f5ed74852778fb548bcde44f7d12d0c296f3cd9 Mon Sep 17 00:00:00 2001 From: Nik Ho Date: Thu, 6 Jun 2024 17:54:10 +1200 Subject: [PATCH 04/10] feat: update hard-coded sdk version in workflow --- .../Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs b/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs index baf53d3cd..78d8b9275 100644 --- a/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs +++ b/src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs @@ -4,7 +4,7 @@ public class SdkVersionInfoHelpers { public static string GetSdkVersionInfo() { - return "__ENGINE_SDK_VERSION__"; + return "1.16.6"; } } } From f802a559c356596a6f0eb372d068292fef0938c8 Mon Sep 17 00:00:00 2001 From: Nik Ho Date: Thu, 6 Jun 2024 17:56:06 +1200 Subject: [PATCH 05/10] fix: update linter workflow --- .github/workflows/linter.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 7a3d06735..4f75b791e 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -61,3 +61,4 @@ jobs: VALIDATE_MARKDOWN: false VALIDATE_GITLEAKS: false VALIDATE_JSCPD: false + VALIDATE_SHELL_SHFMT: false From e85a8271a7feb1afa8974e41747494c1cf033549 Mon Sep 17 00:00:00 2001 From: Nik Ho Date: Thu, 6 Jun 2024 18:08:39 +1200 Subject: [PATCH 06/10] fix: release and tag workflow lint errors --- .github/workflows/release.yml | 4 ++-- .github/workflows/tag.yml | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3a5027a35..ab33661aa 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,8 +21,8 @@ jobs: - name: Get the latest tag run: | git fetch --tags - LATEST_TAG=$(git describe --tags `git rev-list --tags --max-count=1`) - echo "LATEST_TAG=${LATEST_TAG}" >> $GITHUB_ENV + LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1)) + echo "LATEST_TAG=${LATEST_TAG}" >> "$GITHUB_ENV" - name: Pull LFS run: git lfs pull diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml index 484b02a8c..35c6c5d75 100644 --- a/.github/workflows/tag.yml +++ b/.github/workflows/tag.yml @@ -24,7 +24,9 @@ jobs: - name: Extract version from package.json id: extract_version - run: echo "VERSION=$(jq -r .version ./src/Packages/Passport/package.json)" >> $GITHUB_ENV + run: | + VERSION=$(jq -r .version ./src/Packages/Passport/package.json) + echo "VERSION=$VERSION" >> "$GITHUB_ENV" - name: Create Tag uses: negz/create-tag@v1 From e44663926c07fb581b73bb698c7b89e257c294de Mon Sep 17 00:00:00 2001 From: Nik Ho Date: Thu, 6 Jun 2024 18:17:02 +1200 Subject: [PATCH 07/10] fix: release workflow lint errors --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ab33661aa..62ed0d089 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: - name: Get the latest tag run: | git fetch --tags - LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1)) + LATEST_TAG="$(git describe --tags $(git rev-list --tags --max-count=1))" echo "LATEST_TAG=${LATEST_TAG}" >> "$GITHUB_ENV" - name: Pull LFS From 7b4fa0565b0f0316c08926ddf455a1ad4a8051e8 Mon Sep 17 00:00:00 2001 From: Nik Ho Date: Thu, 6 Jun 2024 18:17:51 +1200 Subject: [PATCH 08/10] feat: find and replace sdk version in helper script --- .github/workflows/update-version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml index c4898783b..1d2aef7af 100644 --- a/.github/workflows/update-version.yml +++ b/.github/workflows/update-version.yml @@ -37,7 +37,7 @@ jobs: run: | FILE=./src/Packages/Passport/Runtime/Scripts/Private/Helpers/SdkVersionInfoHelpers.cs VERSION=${{ github.event.inputs.version }} - sed -i "s/__ENGINE_SDK_VERSION__/$VERSION/g" $FILE + sed -i -E "s/[0-9]+\.[0-9]+\.[0-9]+/$VERSION/g" $FILE - uses: gr2m/create-or-update-pull-request-action@v1 env: From 90e81d5857df4d245e91a2418b4f314fabc58ab7 Mon Sep 17 00:00:00 2001 From: Nik Ho Date: Thu, 6 Jun 2024 18:28:28 +1200 Subject: [PATCH 09/10] fix: word splitting linter error --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 62ed0d089..7c4ab75d6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: - name: Get the latest tag run: | git fetch --tags - LATEST_TAG="$(git describe --tags $(git rev-list --tags --max-count=1))" + LATEST_TAG="$(git describe --tags "$(git rev-list --tags --max-count=1)")" echo "LATEST_TAG=${LATEST_TAG}" >> "$GITHUB_ENV" - name: Pull LFS From 09f2baa850b415bde8dc53a7f00d3ebfe6978271 Mon Sep 17 00:00:00 2001 From: Nik Ho Date: Thu, 6 Jun 2024 18:57:29 +1200 Subject: [PATCH 10/10] feat: check workflow actor is in the sdk team --- .github/scripts/check_team_membership.sh | 12 ++++++++++++ .github/workflows/update-version.yml | 11 +++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100755 .github/scripts/check_team_membership.sh diff --git a/.github/scripts/check_team_membership.sh b/.github/scripts/check_team_membership.sh new file mode 100755 index 000000000..51c958d41 --- /dev/null +++ b/.github/scripts/check_team_membership.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +USER=$1 +TOKEN=$2 + +response=$(curl -s -H "Authorization: token $TOKEN" "https://api.github.com/orgs/immutable/teams/sdk/memberships/$USER") + +if echo "$response" | grep -q '"state": "active"'; then + echo "true" +else + echo "false" +fi diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml index 1d2aef7af..1f8d501ff 100644 --- a/.github/workflows/update-version.yml +++ b/.github/workflows/update-version.yml @@ -10,10 +10,17 @@ on: jobs: update: - if: contains('["nattb8"]', github.actor) runs-on: ubuntu-latest - steps: + - name: Check team membership + id: check_team + run: | + IS_MEMBER=$(./.github/scripts/check_team_membership.sh "${{ github.actor }}" "${{ secrets.GITHUB_TOKEN }}") + if [[ "$IS_MEMBER" != "true" ]]; then + echo "Not a member of the SDK team, skipping update" + exit 1 + fi + - name: Checkout code uses: actions/checkout@v3