Просмотр исходного кода

feat: moved to pwsh scripts from yaml and fix invalid new version number

DerSkythe 2 лет назад
Родитель
Сommit
c5fd9e5797

+ 128 - 0
.github/check-version.ps1

@@ -0,0 +1,128 @@
+########################################
+Set-StrictMode -Version 3.0            #
+$ErrorActionPreference = "Stop"        #
+########################################
+
+[string]$FirmwareVersion = $args[0]
+[string]$ReleaseVersion = $args[1]
+[string]$RepoSelf = $args[2]
+[string]$RepoUnleashed = $args[3]
+
+################################################################################################################################
+function CleanInput
+{
+    param(
+        [string]
+        $DurtyString
+    )
+    return $DurtyString -replace ('[^a-zA-Z\d_\-\,\.\t\n\r\:\;]', '')
+}
+
+################################################################################################################################
+
+$Output = @{
+    ReleaseVersion = ''
+    CurrentTag = ''
+    RemoteTagInfo = ''
+    ReleaseType = ''
+}
+
+$Release = @(`
+    (CleanInput `
+        (gh release list -L 1 --repo $RepoUnleashed)`
+    ) -split "`t")
+
+$FirmwareVersionNumber = 0
+$StoredFirmwareVersionNumber = 0
+$LatestFirmware = $Release[2]
+if ($Release[2] -match '\-(\d+)$')
+{
+    $FirmwareVersionNumber = [int]($Matches[1])
+}
+else
+{
+    Write-Error ('::error title=Invalid firmware number::Error during execution this tags {0}' -f $FirmwareVersionNumber)
+    exit 1
+}
+if ($FirmwareVersion -match '\-(\d+)$')
+{
+    $StoredFirmwareVersionNumber = [int]($Matches[1])
+}
+else
+{
+    Write-Error ('::error title=Invalid STORED firmware number::Error during execution this version {0}' -f $FirmwareVersion)
+    exit 1
+}
+$Delta = ( [DateTime]::Now - [DateTime]::Parse($Release[3]))
+Write-Host "FirmwareVersionNumber: $FirmwareVersionNumber, Delta: $Delta"
+#exit 0
+
+$NewVersionFw = $false
+Write-Host ('Latest firmware {0}' -f $FirmwareVersionNumber)
+
+$Output.RemoteTagInfo = Write-Host ('[{0}]({1}/releases/tag/{2})' `
+        -f $LatestFirmware, $RepoUnleashed, $LatestFirmware)
+if (($FirmwareVersionNumber -gt $StoredFirmwareVersionNumber) -and ( $Delta -gt [TimeSpan]::FromMinutes(10)))
+{
+    $Output.RemoteTagInfo = $LatestFirmware
+    $NewVersionFw = $true
+}
+elseif ($FirmwareVersionNumber -lt $StoredFirmwareVersionNumber)
+{
+    Write-Error ('::error title=Invalid check of stored::Version in repo: {0}, but we think it is {1}' `
+            -f $FirmwareVersionNumber, $StoredFirmwareVersionNumber)
+    exit 1
+}
+
+$LastPublished = (gh api -H "Accept: application/vnd.github+json" `
+        -H "X-GitHub-Api-Version: 2022-11-28" "/repos/$( $RepoSelf )/releases?per_page=1" `
+    | ConvertFrom-Json).published_at
+$Delta = ([DateTime]::Now - $LastPublished)
+
+$Release = (gh api -H "Accept: application/vnd.github+json" `
+        -H "X-GitHub-Api-Version: 2022-11-28" "/repos/$( $RepoSelf )/tags?per_page=1" `
+    | ConvertFrom-Json).name
+Write-Host ('Release {0}' -f $Release) -ForegroundColor Gray -BackgroundColor Blue
+$LatestTag = $Release.Substring(1)
+
+$CurrentVersion = [version]::Parse($ReleaseVersion)
+$ParsedRepoVersion = [version]::Parse($LatestTag)
+
+Write-Host ('Current tag:Repos tag {0}, {1}' -f $CurrentVersion, $ParsedRepoVersion) `
+    -ForegroundColor Gray -BackgroundColor Blue
+Write-Debug ('::debug Current tag:Repos tag {0}, {1}' -f $CurrentVersion, $ParsedRepoVersion)
+
+if (($CurrentVersion -lt $ParsedRepoVersion) -and ( $Delta -gt [TimeSpan]::FromMinutes(10)))
+{
+    $Tag = ('{0}.{1}.{2}' -f $ParsedRepoVersion.Major, $ParsedRepoVersion.Minor, $ParsedRepoVersion.Build)
+
+    $Output.ReleaseVersion = $Tag
+    $Output.ReleaseType = 2
+
+    Write-Host ('::warning title=New release!::Release {0}' -f $Tag)
+}
+elseif ( $NewVersionFw )
+{
+    $Tag = ('{0}.{1}.{2}' -f $CurrentVersion.Major, $CurrentVersion.Minor, ($CurrentVersion.Build + 1))
+
+    $Output.ReleaseVersion = $Tag
+    $Output.ReleaseType = 1
+
+    Write-Host ('::warning title=Firmware was changed!::New version is {0}, need to create release {1}' -f $LatestFirmware, $Tag)
+}
+elseif ( ($Delta -gt [TimeSpan]::FromMinutes(10)) -and ($CurrentVersion -gt $ParsedRepoVersion))
+{
+    Write-Host ('::warning title=Invalid version!::Version in settings: {0}, but repo version is {1}. Going to change variable' `
+        -f $CurrentVersion, $ParsedRepoVersion)
+
+    $Output.ReleaseVersion = $ParsedRepoVersion
+    $Output.ReleaseType = 3
+}
+else
+{
+    # none to release
+    Write-Host 'No new versions, sorry'
+}
+
+$Output.CurrentTag = $LatestTag
+$Output

+ 174 - 169
.github/workflows/version-check.yml

@@ -1,169 +1,174 @@
-name: "Version check for NEW release"
-run-name: " Version check for NEW release ${{ inputs.DEPLOY_TARGET }} by @${{ github.ACTOR }}"
-
-on:
-  workflow_dispatch:
-  push:
-    branches:
-      - master
-  schedule:
-    - cron: "*/30 * * * *"
-
-permissions:
-  contents: write
-
-jobs:
-  pull-request:
-    concurrency:
-      group: check-for-new-versions
-      cancel-in-progress: false
-    runs-on: ubuntu-latest
-    env:
-      REPO_UNLEASHED: ${{ vars.REPO_UNLEASHED }}
-      RELEASE_VERSION: ${{ vars.RELEASE_VERSION }}
-      FIRMWARE_VERSION: ${{ vars.FIRMWARE_VERSION }}
-      REPO_SELF: ${{ vars.REPO_SELF }}
-      CHECKOUT_DIR: "firmware"
-    steps:
-      - name: Copy Repo Files
-        uses: actions/checkout@v3
-        with:
-          repository: "${{ env.REPO_SELF }}"
-          path: "${{ env.CHECKOUT_DIR }}"
-          clean: "true"
-          submodules: "true"
-          token: ${{ secrets.FLIPPER_TOKEN }}
-      - name: Check firmware release
-        shell: pwsh
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          function CleanInput
-          {
-              param(
-                  [string]
-                  $DurtyString
-              )
-              return $DurtyString -replace ('[^a-zA-Z\d_\-\,\.\t\n\r\:\;]', '')
-          }
-
-          $Release = @(`
-                      (CleanInput `
-                            (gh release list -L 1 --repo '${{ env.REPO_UNLEASHED }}')`
-                      ) -split "`t")
-
-          $FirmwareVersionNumber = 0
-          $StoredFirmwareVersionNumber = 0
-          if ($Release[2] -match '\-(\d+)$')
-          {
-              $FirmwareVersionNumber = [int]($Matches[1])
-          }
-          else
-          {
-              Write-Error ('::error title=Invalid firmware number::Error during execution this tags {0}' -f $FirmwareVersionNumber)
-              exit 1
-          }
-          if ('${{ env.FIRMWARE_VERSION }}' -match '\-(\d+)$')
-          {
-              $StoredFirmwareVersionNumber = [int]($Matches[1])
-          }
-          else
-          {
-              Write-Error ('::error title=Invalid STORED firmware number::Error during execution this version {0}' -f '${{ env.FIRMWARE_VERSION }}')
-              exit 1
-          }
-
-          $LatestFirmware = CleanInput ((CleanInput (gh release list -L 1 --repo '${{ env.REPO_SELF }}') -replace '\t', ';') | `
-              ConvertFrom-Csv -Delimiter ';' -Header name, flag, tag).tag
-
-          $Delta = ( [DateTime]::Now - [DateTime]::Parse($Release[3]) )
-          $NewVersionFw = $false
-          Write-Host ('Latest firmware {0}' -f $LatestFirmware) -ForegroundColor Gray -BackgroundColor Magenta
-          Write-Debug ('::debug LatestFirmware {0}' -f $LatestFirmware)
-
-          Write-Output ('REMOTE_TAG_INFO=[{0}]({1}/releases/tag/{2})' -f $LatestFirmware, '${{ env.REPO_UNLEASHED }}', $LatestFirmware) >> $env:GITHUB_ENV
-          if (($FirmwareVersionNumber -gt $StoredFirmwareVersionNumber) -and ( $Delta -gt [TimeSpan]::FromMinutes(10)))
-          {
-              Write-Debug ('::debug LatestFirmware {0}' -f $LatestFirmware)
-              Write-Output ('FIRMWARE_VERSION={0}' -f $LatestFirmware) >> $env:GITHUB_ENV
-              $NewVersionFw = $true
-          }
-          elseif ($FirmwareVersionNumber -lt $StoredFirmwareVersionNumber)
-          {
-              Write-Error ('::error title=Invalid check of stored::Version in repo: {0}, but we think it is {1}' -f  $FirmwareVersionNumber, $StoredFirmwareVersionNumber)
-              exit 1
-          }
-
-          $LastPublished = (gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" '/repos/${{ vars.REPO_SELF }}/releases?per_page=1' | ConvertFrom-Json).published_at
-          $Delta = ([DateTime]::Now - $LastPublished)
-
-          $Release = (gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" '/repos/${{ vars.REPO_SELF }}/tags?per_page=1' | ConvertFrom-Json).name
-          Write-Host ('Release {0}' -f $Release) -ForegroundColor Gray -BackgroundColor Magenta
-          $LatestTag = $Release.Substring(1)
-
-          $CurrentVersion = [version]::Parse('${{ env.RELEASE_VERSION }}')
-          $ParsedRepoVersion = [version]::Parse($LatestTag)
-          Write-Host ('Current tag:Repos tag {0}, {1}' -f $CurrentVersion, $ParsedRepoVersion) -ForegroundColor Gray -BackgroundColor Magenta
-          Write-Debug ('::debug Current tag:Repos tag {0}, {1}' -f $CurrentVersion, $ParsedRepoVersion)
-          if (($CurrentVersion -lt $ParsedRepoVersion) -and ( $Delta -gt [TimeSpan]::FromMinutes(10)))
-          {
-              $Tag = ('{0}.{1}.{2}' -f $ParsedRepoVersion.Major, $ParsedRepoVersion.Minor, $ParsedRepoVersion.Build)
-
-              Write-Output ('RELEASE_VERSION={0}' -f $Tag) >> $env:GITHUB_ENV
-              Write-Output ('RELEASE_TYPE=2' -f $Tag) >> $env:GITHUB_ENV
-
-              Write-Output ('::warning title=New release!::Release {0}' -f $Tag)
-          }
-          elseif ( $NewVersionFw )
-          {
-              $Tag = ('{0}.{1}.{2}' -f $CurrentVersion.Major, $CurrentVersion.Minor, ($CurrentVersion.Build + 1))
-
-              Write-Output ('RELEASE_VERSION={0}' -f $Tag) >> $env:GITHUB_ENV
-              Write-Output ('RELEASE_TYPE=1' -f $Tag) >> $env:GITHUB_ENV
-
-              Write-Output ('::warning title=Firmware was changed!::New version is {0}, creating release {1}' -f $LatestFirmware, $Tag)
-          }
-          elseif ( ($Delta -gt [TimeSpan]::FromMinutes(10)) -and ($CurrentVersion -gt $ParsedRepoVersion)) 
-          {
-              Write-Output ('::warning title=Invalid version!::Version in settings: {0}, but repo version is {1}. Going to change variable' -f $CurrentVersion, $ParsedRepoVersion)
-              Write-Output ('RELEASE_VERSION={0}' -f $ParsedRepoVersion) >> $env:GITHUB_ENV
-              Write-Output ('RELEASE_TYPE=3' -f $Tag) >> $env:GITHUB_ENV
-          }
-          else
-          {
-              # none to release
-              Write-Host 'No new versions, sorry'
-          }
-          Write-Output ('CURRENT_TAG={0}' -f $LatestTag) >> $env:GITHUB_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 }}'
-
-          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:
-          GITHUB_TOKEN: ${{ secrets.FLIPPER_TOKEN }}
-          OWNER: ${{ github.repository_owner }}
-        run: |
-          gh variable set RELEASE_VERSION -b ${{ env.RELEASE_VERSION }} -R ${{ env.REPO_SELF }}
-
-# EOF
+name: "Version check for NEW release"
+run-name: " Version check for NEW release ${{ inputs.DEPLOY_TARGET }} by @${{ github.ACTOR }}"
+
+on:
+  workflow_dispatch:
+  push:
+    branches:
+      - master
+  schedule:
+    - cron: "*/30 * * * *"
+
+permissions:
+  contents: write
+
+jobs:
+  pull-request:
+    concurrency:
+      group: check-for-new-versions
+      cancel-in-progress: false
+    runs-on: ubuntu-latest
+    env:
+      REPO_UNLEASHED: ${{ vars.REPO_UNLEASHED }}
+      RELEASE_VERSION: ${{ vars.RELEASE_VERSION }}
+      FIRMWARE_VERSION: ${{ vars.FIRMWARE_VERSION }}
+      REPO_SELF: ${{ vars.REPO_SELF }}
+      CHECKOUT_DIR: "firmware"
+    steps:
+      - name: Copy Repo Files
+        uses: actions/checkout@v3
+        with:
+          repository: "${{ env.REPO_SELF }}"
+          path: "${{ env.CHECKOUT_DIR }}"
+          clean: "true"
+          submodules: "true"
+          token: ${{ secrets.FLIPPER_TOKEN }}
+      - name: Check firmware release
+        shell: pwsh
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        run: |
+          $Output = (./github/check-version.ps1)
+          Write-Output("RELEASE_VERSION=$Output.ReleaseVersion) >> $env:GITHUB_ENV
+          Write-Output("CURRENT_TAG=$Output.CurrentTag) >> $env:GITHUB_ENV
+          Write-Output("REMOTE_TAG_INFO=$Output.RemoteTagInfo) >> $env:GITHUB_ENV
+          Write-Output("RELEASE_TYPE=$Output.ReleaseType) >> $env:GITHUB_ENV
+          # function CleanInput
+          # {
+          #     param(
+          #         [string]
+          #         $DurtyString
+          #     )
+          #     return $DurtyString -replace ('[^a-zA-Z\d_\-\,\.\t\n\r\:\;]', '')
+          # }
+
+          # $Release = @(`
+          #             (CleanInput `
+          #                   (gh release list -L 1 --repo '${{ env.REPO_UNLEASHED }}')`
+          #             ) -split "`t")
+
+          # $FirmwareVersionNumber = 0
+          # $StoredFirmwareVersionNumber = 0
+          # if ($Release[2] -match '\-(\d+)$')
+          # {
+          #     $FirmwareVersionNumber = [int]($Matches[1])
+          # }
+          # else
+          # {
+          #     Write-Error ('::error title=Invalid firmware number::Error during execution this tags {0}' -f $FirmwareVersionNumber)
+          #     exit 1
+          # }
+          # if ('${{ env.FIRMWARE_VERSION }}' -match '\-(\d+)$')
+          # {
+          #     $StoredFirmwareVersionNumber = [int]($Matches[1])
+          # }
+          # else
+          # {
+          #     Write-Error ('::error title=Invalid STORED firmware number::Error during execution this version {0}' -f '${{ env.FIRMWARE_VERSION }}')
+          #     exit 1
+          # }
+
+          # $LatestFirmware = CleanInput ((CleanInput (gh release list -L 1 --repo '${{ env.REPO_SELF }}') -replace '\t', ';') | `
+          #     ConvertFrom-Csv -Delimiter ';' -Header name, flag, tag).tag
+
+          # $Delta = ( [DateTime]::Now - [DateTime]::Parse($Release[3]) )
+          # $NewVersionFw = $false
+          # Write-Host ('Latest firmware {0}' -f $LatestFirmware) -ForegroundColor Gray -BackgroundColor Magenta
+          # Write-Debug ('::debug LatestFirmware {0}' -f $LatestFirmware)
+
+          # Write-Output ('REMOTE_TAG_INFO=[{0}]({1}/releases/tag/{2})' -f $LatestFirmware, '${{ env.REPO_UNLEASHED }}', $LatestFirmware) >> $env:GITHUB_ENV
+          # if (($FirmwareVersionNumber -gt $StoredFirmwareVersionNumber) -and ( $Delta -gt [TimeSpan]::FromMinutes(10)))
+          # {
+          #     Write-Debug ('::debug LatestFirmware {0}' -f $LatestFirmware)
+          #     Write-Output ('FIRMWARE_VERSION={0}' -f $LatestFirmware) >> $env:GITHUB_ENV
+          #     $NewVersionFw = $true
+          # }
+          # elseif ($FirmwareVersionNumber -lt $StoredFirmwareVersionNumber)
+          # {
+          #     Write-Error ('::error title=Invalid check of stored::Version in repo: {0}, but we think it is {1}' -f  $FirmwareVersionNumber, $StoredFirmwareVersionNumber)
+          #     exit 1
+          # }
+
+          # $LastPublished = (gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" '/repos/${{ vars.REPO_SELF }}/releases?per_page=1' | ConvertFrom-Json).published_at
+          # $Delta = ([DateTime]::Now - $LastPublished)
+
+          # $Release = (gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" '/repos/${{ vars.REPO_SELF }}/tags?per_page=1' | ConvertFrom-Json).name
+          # Write-Host ('Release {0}' -f $Release) -ForegroundColor Gray -BackgroundColor Magenta
+          # $LatestTag = $Release.Substring(1)
+
+          # $CurrentVersion = [version]::Parse('${{ env.RELEASE_VERSION }}')
+          # $ParsedRepoVersion = [version]::Parse($LatestTag)
+          # Write-Host ('Current tag:Repos tag {0}, {1}' -f $CurrentVersion, $ParsedRepoVersion) -ForegroundColor Gray -BackgroundColor Magenta
+          # Write-Debug ('::debug Current tag:Repos tag {0}, {1}' -f $CurrentVersion, $ParsedRepoVersion)
+          # if (($CurrentVersion -lt $ParsedRepoVersion) -and ( $Delta -gt [TimeSpan]::FromMinutes(10)))
+          # {
+          #     $Tag = ('{0}.{1}.{2}' -f $ParsedRepoVersion.Major, $ParsedRepoVersion.Minor, $ParsedRepoVersion.Build)
+
+          #     Write-Output ('RELEASE_VERSION={0}' -f $Tag) >> $env:GITHUB_ENV
+          #     Write-Output ('RELEASE_TYPE=2' -f $Tag) >> $env:GITHUB_ENV
+
+          #     Write-Output ('::warning title=New release!::Release {0}' -f $Tag)
+          # }
+          # elseif ( $NewVersionFw )
+          # {
+          #     $Tag = ('{0}.{1}.{2}' -f $CurrentVersion.Major, $CurrentVersion.Minor, ($CurrentVersion.Build + 1))
+
+          #     Write-Output ('RELEASE_VERSION={0}' -f $Tag) >> $env:GITHUB_ENV
+          #     Write-Output ('RELEASE_TYPE=1' -f $Tag) >> $env:GITHUB_ENV
+
+          #     Write-Output ('::warning title=Firmware was changed!::New version is {0}, creating release {1}' -f $LatestFirmware, $Tag)
+          # }
+          # elseif ( ($Delta -gt [TimeSpan]::FromMinutes(10)) -and ($CurrentVersion -gt $ParsedRepoVersion)) 
+          # {
+          #     Write-Output ('::warning title=Invalid version!::Version in settings: {0}, but repo version is {1}. Going to change variable' -f $CurrentVersion, $ParsedRepoVersion)
+          #     Write-Output ('RELEASE_VERSION={0}' -f $ParsedRepoVersion) >> $env:GITHUB_ENV
+          #     Write-Output ('RELEASE_TYPE=3' -f $Tag) >> $env:GITHUB_ENV
+          # }
+          # else
+          # {
+          #     # none to release
+          #     Write-Host 'No new versions, sorry'
+          # }
+          # Write-Output ('CURRENT_TAG={0}' -f $LatestTag) >> $env:GITHUB_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 }}'
+
+          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:
+          GITHUB_TOKEN: ${{ secrets.FLIPPER_TOKEN }}
+          OWNER: ${{ github.repository_owner }}
+        run: |
+          gh variable set RELEASE_VERSION -b ${{ env.RELEASE_VERSION }} -R ${{ env.REPO_SELF }}
+
+# EOF

+ 13 - 0
.idea/.idea.subbrute.dir/.idea/.gitignore

@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/modules.xml
+/contentModel.xml
+/.idea.subbrute.iml
+/projectSettingsUpdater.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml

+ 4 - 0
.idea/.idea.subbrute.dir/.idea/encodings.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
+</project>

+ 8 - 0
.idea/.idea.subbrute.dir/.idea/indexLayout.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="UserContentModel">
+    <attachedFolders />
+    <explicitIncludes />
+    <explicitExcludes />
+  </component>
+</project>

+ 18 - 0
.idea/.idea.subbrute.dir/.idea/misc.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ActiveTabHighlighterConfiguration">
+    <option name="background">
+      <PersistentColor>
+        <option name="enabled" value="true" />
+        <option name="red" value="173" />
+        <option name="green" value="46" />
+        <option name="blue" value="156" />
+      </PersistentColor>
+    </option>
+  </component>
+  <component name="SshConsoleOptionsProvider">
+    <option name="myEncoding" value="UTF-8" />
+    <option name="myConnectionType" value="NONE" />
+    <option name="myConnectionId" value="" />
+  </component>
+</project>

+ 6 - 0
.idea/.idea.subbrute.dir/.idea/projectSettingsUpdater.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RiderProjectSettingsUpdater">
+    <option name="vcsConfiguration" value="2" />
+  </component>
+</project>

+ 6 - 0
.idea/.idea.subbrute.dir/.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>

+ 60 - 0
.idea/.idea.subbrute.dir/.idea/workspace.xml

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="f38797aa-9c11-4a19-ac8e-09aa81c5b2ac" name="Changes" comment="">
+      <change beforePath="$PROJECT_DIR$/.github/workflows/version-check.yml" beforeDir="false" afterPath="$PROJECT_DIR$/.github/workflows/version-check.yml" afterDir="false" />
+    </list>
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="Git.Settings">
+    <option name="PREVIEW_PUSH_ON_COMMIT_AND_PUSH" value="false" />
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+  </component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
+  <component name="ProjectId" id="2NdkrBy1WNws4uTxpIr1xf1mNkt" />
+  <component name="ProjectViewState">
+    <option name="hideEmptyMiddlePackages" value="true" />
+    <option name="showLibraryContents" value="true" />
+  </component>
+  <component name="PropertiesComponent">{
+  &quot;keyToString&quot;: {
+    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
+    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
+    &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;
+  },
+  &quot;keyToStringList&quot;: {
+    &quot;rider.external.source.directories&quot;: [
+      &quot;C:\\Users\\Skif\\AppData\\Local\\JetBrains\\Shared\\vAny\\DecompilerCache&quot;,
+      &quot;C:\\Users\\Skif\\AppData\\Local\\JetBrains\\Shared\\vAny\\SourcesCache&quot;,
+      &quot;C:\\Users\\Skif\\AppData\\Local\\Symbols\\src&quot;
+    ]
+  }
+}</component>
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="Default task">
+      <changelist id="f38797aa-9c11-4a19-ac8e-09aa81c5b2ac" name="Changes" comment="" />
+      <created>1680001542466</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1680001542466</updated>
+      <workItem from="1680001545311" duration="156000" />
+      <workItem from="1680001723598" duration="121000" />
+      <workItem from="1680001863890" duration="1582000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="3" />
+  </component>
+  <component name="VcsManagerConfiguration">
+    <option name="CHECK_NEW_TODO" value="false" />
+    <option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
+  </component>
+</project>

+ 5 - 0
.vscode/settings.json

@@ -0,0 +1,5 @@
+{
+    "githubPullRequests.ignoredPullRequestBranches": [
+        "master"
+    ]
+}