# Added - Added LICENCE. - Added build workflow. - Added release workflow. - Added PackageTools. # Changed - Update Unity from 2020.3.1f1 to 2020.8.1f1.
		
			
				
	
	
		
			130 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Release
 | |
| 
 | |
| on:
 | |
|   workflow_dispatch:
 | |
|     inputs:
 | |
|       tag:
 | |
|         description: "tag: git tag you want create. (sample 1.0.0)"
 | |
|         required: true
 | |
| 
 | |
| env:
 | |
|   GIT_TAG: ${{ github.event.inputs.tag }}
 | |
| 
 | |
| jobs:
 | |
|   update-packagejson:
 | |
|     runs-on: ubuntu-latest
 | |
|     env:
 | |
|       TARGET_FILE: ./Assets/MackySoft/MackySoft.SerializeReferenceExtensions/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: steps.check_update.outputs.changed == '1'
 | |
|         uses: ad-m/github-push-action@master
 | |
|         with:
 | |
|           github_token: ${{ secrets.GITHUB_TOKEN }}
 | |
|           branch: ${{ github.ref }}
 | |
|           tags: true
 | |
| 
 | |
|   build:
 | |
|     needs: [update-packagejson]
 | |
|     strategy:
 | |
|       matrix:
 | |
|         unity: ["2020.3.8f1"]
 | |
|         include:
 | |
|           - unityVersion: 2020.3.8f1
 | |
|             license: UNITY_LICENSE_2020
 | |
|     runs-on: ubuntu-latest
 | |
|     timeout-minutes: 15
 | |
|     steps:
 | |
|       - run: echo ${{ needs.update-packagejson.outputs.sha }}
 | |
|       - uses: actions/checkout@v2
 | |
|         with:
 | |
|           ref: ${{ needs.update-packagejson.outputs.sha }}
 | |
| 
 | |
|       - name: Export unitypackage
 | |
|         uses: game-ci/unity-builder@v2
 | |
|         env:
 | |
|           UNITY_LICENSE: ${{ secrets[matrix.license] }}
 | |
|         with:
 | |
|           projectPath: .
 | |
|           unityVersion: ${{ matrix.unityVersion }}
 | |
|           targetPlatform: StandaloneLinux64
 | |
|           buildMethod: MackySoft.PackageTools.Editor.UnityPackageExporter.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: .
 | |
| 
 | |
|       # Store artifacts.
 | |
|       - uses: actions/upload-artifact@v2
 | |
|         with:
 | |
|           name: SerializeReference-Extensions.unitypackage
 | |
|           path: ./Build/SerializeReference-Extensions.unitypackage
 | |
| 
 | |
|   create-release:
 | |
|     needs: [update-packagejson, build]
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       # Create Releases
 | |
|       - uses: actions/create-release@v1
 | |
|         id: create_release
 | |
|         env:
 | |
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | |
|         with:
 | |
|           tag_name: ${{ env.GIT_TAG }}
 | |
|           release_name: ${{ env.GIT_TAG }}
 | |
|           commitish: ${{ needs.update-packagejson.outputs.sha }}
 | |
|           draft: true
 | |
|           prerelease: false
 | |
| 
 | |
|       # Download(All) Artifacts to current directory
 | |
|       - uses: actions/download-artifact@v2
 | |
|       
 | |
|       # Upload to Releases(unitypackage)
 | |
|       - uses: actions/upload-release-asset@v1
 | |
|         env:
 | |
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | |
|         with:
 | |
|           upload_url: ${{ steps.create_release.outputs.upload_url }}
 | |
|           asset_path: ./SerializeReference-Extensions.unitypackage/SerializeReference-Extensions.unitypackage
 | |
|           asset_name: SerializeReference-Extensions.unitypackage
 | |
|           asset_content_type: application/octet-stream |