DerSkythe 2 лет назад
Родитель
Сommit
506b6bc479
2 измененных файлов с 94 добавлено и 33 удалено
  1. 81 0
      .github/actions/make-release/action.yml
  2. 13 33
      .github/workflows/version-check.yml

+ 81 - 0
.github/actions/make-release/action.yml

@@ -0,0 +1,81 @@
+---
+name: "Action release"
+description: "Steps to build release"
+author: "DerSkythe"
+
+inputs:
+  release_type:
+    description: 'release_type'
+    required: true
+  release_version:
+    description: 'release_version'
+    required: true
+  firmware_version:
+    description: 'firmware_version'
+    required: true
+  repo_self:
+    description: 'REPO_SELF'
+    required: true
+  gh_token:
+    description: 'github_gh_token'
+    required: true
+  owner:
+    description: 'owner'
+    required: true
+  current_tag:
+    description: 'current_tag'
+    required: true
+  remote_tag_info:
+    description: 'remote_tag_info'
+    required: true
+
+outputs:
+  make-minor-release:
+    description: "make-minor-release"
+    value: ${{ steps.make-minor-release.outputs }}
+  make-major-release:
+    description: "make-minor-release"
+    value: ${{ steps.make-major-release.outputs }}
+
+runs:
+  using: "composite"
+  steps:
+    - name: Minor release
+      if: ${{ inputs.release_type == 2 }}
+      id: make-minor-release
+      uses: softprops/action-gh-release@v1
+      with:
+        tag_name: 'v${{ inputs.release_version }}'
+        name: 'Minor update v${{ inputs.release_version }}'
+        token: ${{ inputs.gh_token }}
+        draft: true
+        generate_release_notes: true
+        #target_commitish: ${{ github.SHA }}
+        append_body: true
+        body: 'Rebuild with new version of firmware.\n\nSee: [CHANGELOG](${{ inputs.firmware_version }}/blob/dev/CHANGELOG.md)\n${{ inputs.remote_tag_info }}'
+        repository: '${{ inputs.repo_self }}'
+
+    - name: Major release
+      if: ${{ inputs.release_type == 1 }}
+      id: make-major-release
+      uses: softprops/action-gh-release@v1
+      with:
+        tag_name: 'v${{ inputs.release_version }}'
+        name: Release v${{ inputs.release_version }}
+        token: ${{ inputs.gh_token }}
+        draft: true
+        generate_release_notes: true
+        #target_commitish: ${{ github.SHA }}
+        append_body: true
+        body: 'New version is rolling out!'
+        repository: '${{ inputs.repo_self }}'
+
+    - name: Update Firmware variable and create UPDATE release if necessary
+      if: ${{ success() }}
+      env:
+        GITHUB_TOKEN: ${{ inputs.gh_token }}
+        OWNER: ${{ inputs.owner }}
+      shell: bash
+      run: |
+          gh variable set FIRMWARE_VERSION -b '${{ inputs.firmware_version }}' -R '${{ inputs.repo_self }}'
+          gh variable set RELEASE_VERSION -b '${{ inputs.release_version }}' -R '${{ inputs.repo_self }}'

+ 13 - 33
.github/workflows/version-check.yml

@@ -26,6 +26,7 @@ jobs:
       FIRMWARE_VERSION: ${{ vars.FIRMWARE_VERSION }}
       REPO_SELF: ${{ vars.REPO_SELF }}
       CHECKOUT_DIR: "firmware"
+      RELEASE_TYPE: 0
     steps:
       - name: Copy Repo Files
         uses: actions/checkout@v3
@@ -40,42 +41,21 @@ jobs:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         run: |
           ./.github/check-version.ps1 '${{ env.FIRMWARE_VERSION }}' '${{ env.RELEASE_VERSION }}' '${{ env.REPO_SELF }}' '${{ env.REPO_UNLEASHED }}' | %{ Write-Output($_) >> $Env:GITHUB_ENV }
-          #Write-Output("CURRENT_TAG=$($Output.CurrentTag)") >> $env:GITHUB_ENV
-          #| Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
-#          New-Alias -Name sc -Value ".\.github/check-version.ps1"
-#          $Params = @("${{ env.FIRMWARE_VERSION }}", "${{ env.RELEASE_VERSION }}", "${{ env.REPO_SELF }}", "${{ env.REPO_UNLEASHED }}")
-#          sc $Params
-#          #& $Cmd $Params | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
-#         $Output = ('& $env:GITHUB_ACTION_PATH/.github/check-version.ps1 "${{ env.FIRMWARE_VERSION }}" "${{ env.RELEASE_VERSION }}" "${{ env.REPO_SELF }}" "${{ env.REPO_UNLEASHED }}"')
-#         Write-Output("RELEASE_VERSION=$($Output.ReleaseVersion)") | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
-#         Write-Output("CURRENT_TAG=$($Output.CurrentTag)") | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
-#         Write-Output("REMOTE_TAG_INFO=$($Output.RemoteTagInfo)") | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
-#        Write-Output("RELEASE_TYPE=$($Output.ReleaseType)") | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
       - name: Print env values
         run: env
-          
-      - name: Update Firmware variable and create UPDATE release if necessary
-        if: ${{ success() && env.RELEASE_TYPE == 1 }}
-        env:
-          GITHUB_TOKEN: ${{ secrets.FLIPPER_TOKEN }}
-          OWNER: ${{ github.repository_owner }}
-        run: |
-          gh release create 'v${{ env.RELEASE_VERSION }}' --latest --draft \
-            --notes 'Rebuild with new version of firmware.\n\nSee: [CHANGELOG](${{ env.FIRMWARE_VERSION }}/blob/dev/CHANGELOG.md)\n${{ env.REMOTE_TAG_INFO}}' \
-            --title 'Minor update v${{ env.RELEASE_VERSION }}' --verify-tag -R '${{ env.REPO_SELF }}'
-          gh variable set FIRMWARE_VERSION -b '${{ env.FIRMWARE_VERSION }}' -R '${{ env.REPO_SELF }}'
-          gh variable set RELEASE_VERSION -b '${{ env.RELEASE_VERSION }}' -R '${{ env.REPO_SELF }}'
-      - name: Update release variable and create NEW release if necessary
-        if: ${{ success() && env.RELEASE_TYPE == 2 }}
-        env:
-          GITHUB_TOKEN: ${{ secrets.FLIPPER_TOKEN }}
-          OWNER: ${{ github.repository_owner }}
-        run: |
-          gh release create 'v${{ env.RELEASE_VERSION }}' --notes-start-tag 'v${{ env.CURRENT_TAG }}' --generate-notes --draft --latest \
-            --notes 'New version is rolling out!' --verify-tag --title 'Release v${{ env.RELEASE_VERSION }}'  -R '${{ env.REPO_SELF }}'
+      - name: Create release if necessary
+        if: ${{ success() && (env.RELEASE_TYPE == 2  || env.RELEASE_TYPE == 1 )}}
+        uses: ./.github/actions/make-release
+        with:
+          gh_token: ${{ secrets.FLIPPER_TOKEN }}
+          release_type: ${{ env.RELEASE_TYPE }}
+          release_version: ${{ env.RELEASE_VERSION }}
+          firmware_version: ${{ env.FIRMWARE_VERSION }}
+          repo_self: ${{ env.REPO_SELF }}
+          owner: ${{ github.repository_owner }}
+          current_tag: ${{ env.CURRENT_TAG }}
+          remote_tag_info: ${{ env.REMOTE_TAG_INFO }}
 
-          gh variable set FIRMWARE_VERSION -b '${{ env.FIRMWARE_VERSION }}' -R '${{ env.REPO_SELF }}'
-          gh variable set RELEASE_VERSION -b '${{ env.RELEASE_VERSION }}' -R '${{ env.REPO_SELF }}'
       - name: Current settings in repo invalid. Changing
         if: ${{ success() && env.RELEASE_TYPE > 2 }}
         env: