name: Build Release on: workflow_dispatch: pull_request: push: branches: - main tags: - '**' env: packageName: "nadena.dev.modular-avatar" jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Checkout logo assets uses: actions/checkout@v3 if: startsWith(github.ref, 'refs/tags/') with: repository: bdunderscore/modular-avatar-images path: image-assets - name: Inject logo assets if: startsWith(github.ref, 'refs/tags/') run: | cp -f image-assets/img/logo/ma_logo.png Packages/${{env.packageName}}/Editor/Images/logo.png cp -f image-assets/img/logo/ma_icon.png Packages/${{env.packageName}}/Runtime/Icons/Icon_MA_Script.png - name: Check semver syntax id: semver-check if: startsWith(github.ref, 'refs/tags/') env: REF_NAME: ${{ github.ref }} run: | if echo $REF_NAME | grep '[a-z]-[0-9]' && ! echo $REF_NAME | grep '^refs/tags/1\.5\.0-'; then echo "Tag name does not follow semver prerelease syntax: $REF_NAME" exit 1 fi - name: get version id: version uses: notiz-dev/github-action-json-property@a5a9c668b16513c737c3e1f8956772c99c73f6e8 with: path: "Packages/${{env.packageName}}/package.json" prop_path: "version" - name: Check tag consistency if: startsWith(github.ref, 'refs/tags/') run: | if [ "${{ steps.version.outputs.prop }}" != "${GITHUB_REF##*/}" ]; then echo "Version in package.json does not match tag name: ${{ steps.version.outputs.prop }} != ${GITHUB_REF##*/}" exit 1 fi - run: echo ${{steps.version.outputs.prop}} - name: Set Environment Variables run: | echo "zipFile=${{ env.packageName }}-${{ steps.version.outputs.prop }}".zip >> $GITHUB_ENV echo "unityPackage=${{ env.packageName }}-${{ steps.version.outputs.prop }}.unitypackage" >> $GITHUB_ENV - name: Create Zip uses: thedoctor0/zip-release@a24011d8d445e4da5935a7e73c1f98e22a439464 with: type: "zip" directory: "Packages/${{env.packageName}}/" filename: "../../${{env.zipFile}}" # make the zip file two directories up, since we start two directories in above - uses: actions/upload-artifact@v3 with: name: package-zip path: ${{ env.zipFile }} - name: Create unitypackage uses: anatawa12/sh-actions/create-unitypackage@cf32b535acd8f4f05a0eb03e0851264122f98f62 with: output-path: ${{ env.unityPackage }} package-path: Packages/${{ env.packageName }} - uses: actions/upload-artifact@v3 with: name: unitypackage path: ${{ env.unityPackage }} - name: Make Release uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 if: startsWith(github.ref, 'refs/tags/') with: draft: true generate_release_notes: true tag_name: ${{ steps.version.outputs.prop }} files: | ${{ env.zipFile }} ${{ env.unityPackage }} Packages/${{ env.packageName }}/package.json