From 873485ad1ae64f3e589d74b76103d187d9718e84 Mon Sep 17 00:00:00 2001 From: Ikiru Yoshizaki <3856350+guitarrapc@users.noreply.github.com> Date: Tue, 26 Jul 2022 13:10:10 +0900 Subject: [PATCH 1/4] chore: IsPackable marking --- src/UniTask.NetCore/UniTask.NetCore.csproj | 1 + src/UniTask.NetCoreSandbox/UniTask.NetCoreSandbox.csproj | 1 + 2 files changed, 2 insertions(+) diff --git a/src/UniTask.NetCore/UniTask.NetCore.csproj b/src/UniTask.NetCore/UniTask.NetCore.csproj index 6b6d81e..1f93aa9 100644 --- a/src/UniTask.NetCore/UniTask.NetCore.csproj +++ b/src/UniTask.NetCore/UniTask.NetCore.csproj @@ -23,6 +23,7 @@ Icon.png true opensource.snk + true diff --git a/src/UniTask.NetCoreSandbox/UniTask.NetCoreSandbox.csproj b/src/UniTask.NetCoreSandbox/UniTask.NetCoreSandbox.csproj index cc33684..369f7ee 100644 --- a/src/UniTask.NetCoreSandbox/UniTask.NetCoreSandbox.csproj +++ b/src/UniTask.NetCoreSandbox/UniTask.NetCoreSandbox.csproj @@ -4,6 +4,7 @@ Exe netcoreapp3.1 NetCoreSandbox + false From 534f4a25888a6fcdeea541f82f260c46bf028639 Mon Sep 17 00:00:00 2001 From: Ikiru Yoshizaki <3856350+guitarrapc@users.noreply.github.com> Date: Tue, 26 Jul 2022 13:10:22 +0900 Subject: [PATCH 2/4] chore: use Cysharp/Actions reusable workflow stale --- .github/workflows/stale.yml | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 70c3a28..b480c3e 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,24 +1,10 @@ name: "Close stale issues" on: + workflow_dispatch: schedule: - cron: "0 0 * * *" jobs: stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v3 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - # enable issue - stale-issue-message: "This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 7 days." - stale-issue-label: "stale" - # enable pr - stale-pr-message: "This PR is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 7 days." - stale-pr-label: "stale" - days-before-stale: 90 - days-before-close: 7 - exempt-issue-labels: "wip" - exempt-pr-labels: "wip" - remove-stale-when-updated: true + uses: Cysharp/Actions/.github/workflows/stale-issue.yaml@main From df96c119c1b4b4c6f475508311fb9c6d4dfecece Mon Sep 17 00:00:00 2001 From: Ikiru Yoshizaki <3856350+guitarrapc@users.noreply.github.com> Date: Tue, 26 Jul 2022 13:10:32 +0900 Subject: [PATCH 3/4] chore: set timeout --- .github/workflows/build-docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 4cc7e96..a6e8eb0 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -9,6 +9,7 @@ on: jobs: run-docfx: runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@v2 - uses: actions/checkout@v2 From 0595a4182a3f0ff9b9c3776092b3779b8ad4ba74 Mon Sep 17 00:00:00 2001 From: Ikiru Yoshizaki <3856350+guitarrapc@users.noreply.github.com> Date: Tue, 26 Jul 2022 13:10:40 +0900 Subject: [PATCH 4/4] feat: use Cysharp/Actions for release --- .github/workflows/build-debug.yml | 34 ++++---- .github/workflows/build-release.yml | 116 +++++++--------------------- 2 files changed, 44 insertions(+), 106 deletions(-) diff --git a/.github/workflows/build-debug.yml b/.github/workflows/build-debug.yml index c722673..9dc6346 100644 --- a/.github/workflows/build-debug.yml +++ b/.github/workflows/build-debug.yml @@ -4,8 +4,6 @@ on: push: branches: - "master" - tags: - - "!*" # not a tag push pull_request: branches: - "master" @@ -13,13 +11,16 @@ on: jobs: build-dotnet: runs-on: ubuntu-latest - env: - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 - NUGET_XMLDOC_MODE: skip + timeout-minutes: 10 steps: - - uses: actions/checkout@v2 - - run: dotnet test -c Debug ./src/UniTask.NetCoreTests/UniTask.NetCoreTests.csproj + - uses: actions/checkout@v3 + - uses: Cysharp/Actions/.github/actions/setup-dotnet@main + with: + dotnet-version: | + 3.1.x + 6.0.x + - run: dotnet build -c Debug + - run: dotnet test -c Debug build-unity: if: "((github.event_name == 'push' && github.repository_owner == 'Cysharp') || startsWith(github.event.pull_request.head.label, 'Cysharp:'))" @@ -34,12 +35,13 @@ jobs: - unity: 2020.1.12f1 license: UNITY_LICENSE_2020 runs-on: ubuntu-latest + timeout-minutes: 15 steps: - uses: actions/checkout@v2 # Execute scripts: RuntimeUnitTestToolkit # /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod UnitTestBuilder.BuildUnitTest /headless /ScriptBackend mono /BuildTarget StandaloneLinux64 - name: Build UnitTest(Linux64, mono) - uses: game-ci/unity-builder@v2.0-alpha-6 + uses: game-ci/unity-builder@v2 env: UNITY_LICENSE: ${{ secrets[matrix.license] }} with: @@ -55,7 +57,7 @@ jobs: # Execute scripts: Export Package # /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod PackageExporter.Export - name: Export unitypackage - uses: game-ci/unity-builder@v2.0-alpha-6 + uses: game-ci/unity-builder@v2 env: UNITY_LICENSE: ${{ secrets[matrix.license] }} with: @@ -65,15 +67,9 @@ jobs: buildMethod: PackageExporter.Export versioning: None - - name: check all .meta is commited - run: | - if git ls-files --others --exclude-standard -t | grep --regexp='[.]meta$'; then - echo "Detected .meta file generated. Do you forgot commit a .meta file?" - exit 1 - else - echo "Great, all .meta files are commited." - fi - working-directory: src/UniTask + - uses: Cysharp/Actions/.github/actions/check-metas@main # check meta files + with: + directory: src/UniTask # Store artifacts. - uses: actions/upload-artifact@v2 diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 1f9c40f..82c6c21 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -6,90 +6,44 @@ on: tag: description: "tag: git tag you want create. (sample 1.0.0)" required: true - dry_run: - description: "dry_run: true will never create relase/nuget." + dry-run: + description: "dry-run: true will never create relase/nuget." required: true - default: "false" + default: false + type: boolean env: GIT_TAG: ${{ github.event.inputs.tag }} - DRY_RUN: ${{ github.event.inputs.dry_run }} - DRY_RUN_BRANCH_PREFIX: "test_release" + DRY_RUN: ${{ github.event.inputs.dry-run }} jobs: update-packagejson: - runs-on: ubuntu-latest - env: - TARGET_FILE: ./src/UniTask/Assets/Plugins/UniTask/package.json - outputs: - sha: ${{ steps.commit.outputs.sha }} - steps: - - uses: actions/checkout@v2 - - name: Output package.json (Before) - run: cat ${{ env.TARGET_FILE}} - - - name: Update package.json to version ${{ env.GIT_TAG }} - run: sed -i -e "s/\(\"version\":\) \"\(.*\)\",/\1 \"${{ env.GIT_TAG }}\",/" ${{ env.TARGET_FILE }} - - - name: Check update - id: check_update - run: | - cat ${{ env.TARGET_FILE}} - git diff --exit-code || echo "::set-output name=changed::1" - - - name: Commit files - id: commit - if: steps.check_update.outputs.changed == '1' - run: | - git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" - git config --local user.name "github-actions[bot]" - git commit -m "feat: Update package.json to ${{ env.GIT_TAG }}" -a - echo "::set-output name=sha::$(git rev-parse HEAD)" - - - name: Check sha - run: echo "SHA ${SHA}" - env: - SHA: ${{ steps.commit.outputs.sha }} - - - name: Create Tag - if: steps.check_update.outputs.changed == '1' - run: git tag ${{ env.GIT_TAG }} - - - name: Push changes - if: env.DRY_RUN == 'false' && steps.check_update.outputs.changed == '1' - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: ${{ github.ref }} - tags: true - - - name: Push changes (dry_run) - if: env.DRY_RUN == 'true' && steps.check_update.outputs.changed == '1' - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: ${{ env.DRY_RUN_BRANCH_PREFIX }}-${{ env.GIT_TAG }} - tags: false + uses: Cysharp/Actions/.github/workflows/update-packagejson.yaml@main + with: + file-path: ./src/UniTask/Assets/Plugins/UniTask/package.json + tag: ${{ github.event.inputs.tag }} + dry-run: ${{ fromJson(github.event.inputs.dry-run) }} build-dotnet: needs: [update-packagejson] runs-on: ubuntu-latest timeout-minutes: 10 - env: - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 - NUGET_XMLDOC_MODE: skip steps: - run: echo ${{ needs.update-packagejson.outputs.sha }} - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: ref: ${{ needs.update-packagejson.outputs.sha }} + - uses: Cysharp/Actions/.github/actions/setup-dotnet@main + with: + dotnet-version: | + 3.1.x + 6.0.x # build and pack - run: dotnet build -c Release -p:Version=${{ env.GIT_TAG }} - run: dotnet test -c Release --no-build - run: dotnet pack ./src/UniTask.NetCore/UniTask.NetCore.csproj -c Release --no-build -p:Version=${{ env.GIT_TAG }} -o ./publish # Store artifacts. - - uses: actions/upload-artifact@v1 + - uses: actions/upload-artifact@v2 with: name: nuget path: ./publish/ @@ -112,7 +66,7 @@ jobs: # Execute scripts: Export Package # /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod PackageExporter.Export - name: Export unitypackage - uses: game-ci/unity-builder@v2.0-alpha-6 + uses: game-ci/unity-builder@v2 env: UNITY_LICENSE: ${{ secrets[matrix.license] }} with: @@ -122,15 +76,9 @@ jobs: buildMethod: PackageExporter.Export versioning: None - - name: check all .meta is commited - run: | - if git ls-files --others --exclude-standard -t | grep --regexp='[.]meta$'; then - echo "Detected .meta file generated. Do you forgot commit a .meta file?" - exit 1 - else - echo "Great, all .meta files are commited." - fi - working-directory: src/UniTask + - uses: Cysharp/Actions/.github/actions/check-metas@main # check meta files + with: + directory: src/UniTask # Store artifacts. - uses: actions/upload-artifact@v2 @@ -139,14 +87,12 @@ jobs: path: ./src/UniTask/UniTask.${{ env.GIT_TAG }}.unitypackage create-release: - if: github.event.inputs.dry_run == 'false' + if: github.event.inputs.dry-run == 'false' needs: [update-packagejson, build-dotnet, build-unity] runs-on: ubuntu-latest - env: - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 - NUGET_XMLDOC_MODE: skip + timeout-minutes: 10 steps: + - uses: Cysharp/Actions/.github/actions/setup-dotnet@main # Create Releases - uses: actions/create-release@v1 id: create_release @@ -173,12 +119,8 @@ jobs: asset_content_type: application/octet-stream cleanup: - if: github.event.inputs.dry_run == 'true' - needs: [build-dotnet, build-unity] - runs-on: ubuntu-latest - steps: - - name: Delete branch - uses: dawidd6/action-delete-branch@v3 - with: - github_token: ${{ github.token }} - branches: ${{ env.DRY_RUN_BRANCH_PREFIX }}-${{ env.GIT_TAG }} + if: needs.update-packagejson.outputs.is-branch-created == 'true' + needs: [update-packagejson, build-dotnet, build-unity] + uses: Cysharp/Actions/.github/workflows/clean-packagejson-branch.yaml@main + with: + branch: ${{ needs.update-packagejson.outputs.branch-name }}