فهرست منبع

fix: version-check.yml and build-with-firmwware.yml

DerSkythe 2 سال پیش
والد
کامیت
3cf84b7dd4
3فایلهای تغییر یافته به همراه222 افزوده شده و 220 حذف شده
  1. 141 141
      .github/check-version.ps1
  2. 13 12
      .github/workflows/build-with-firmwware.yml
  3. 68 67
      .github/workflows/version-check.yml

+ 141 - 141
.github/check-version.ps1

@@ -1,141 +1,141 @@
-########################################
-Set-StrictMode -Version 3.0            #
-$ErrorActionPreference = "Stop"        #
-########################################
-
-[string]$FirmwareVersion = $args[0]
-[string]$ReleaseVersion = $args[1]
-[string]$RepoSelf = $args[2]
-[string]$RepoUnleashed = $args[3]
-[bool]$ForGithubActions = $true
-
-################################################################################################################################
-function CleanInput
-{
-    param(
-        [string]
-        $DurtyString
-    )
-    return $DurtyString -replace ('[^a-zA-Z\d_\-\,\.\t\n\r\:\;]', '')
-}
-
-################################################################################################################################
-
-$Output = @{
-    RELEASE_VERSION = $ReleaseVersion
-    CURRENT_TAG     = $FirmwareVersion
-    REMOTE_TAG_INFO = $FirmwareVersion
-    RELEASE_TYPE = 0
-}
-
-$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.REMOTE_TAG_INFO = Write-Host ('[{0}]({1}/releases/tag/{2})' `
-        -f $LatestFirmware, $RepoUnleashed, $LatestFirmware)
-if (($FirmwareVersionNumber -gt $StoredFirmwareVersionNumber) -and ( $Delta -gt [TimeSpan]::FromMinutes(10)))
-{
-    $Output.REMOTE_TAG_INFO = $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
-}
-
-$PublishDates = (gh api -H "Accept: application/vnd.github+json" `
-        -H "X-GitHub-Api-Version: 2022-11-28" "/repos/$( $RepoSelf )/releases?per_page=1" `
-    | ConvertFrom-Json | Select-Object published_at, created_at)
-$LastPublished = ($null -eq $PublishDates.published_at ? $PublishDates.created_at : $PublishDates.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.RELEASE_VERSION = $Tag
-    $Output.RELEASE_TYPE = 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.RELEASE_VERSION = $Tag
-    $Output.RELEASE_TYPE = 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.RELEASE_VERSION = $ParsedRepoVersion
-    $Output.RELEASE_TYPE = 3
-}
-else
-{
-    # none to release
-    Write-Host 'No new versions, sorry'
-}
-
-$Output.CURRENT_TAG = $LatestTag
-
-if($ForGithubActions) {
-    $Plain = New-Object -TypeName "System.Text.StringBuilder";
-    $Output.GetEnumerator() | ForEach-Object {
-        [void]$Plain.Append($_.Key)
-        [void]$Plain.Append('=')
-        [void]$Plain.AppendLine($_.Value)
-    }
-    Write-Output $Plain.ToString()
-} else {
-    $Output
-}
+########################################
+Set-StrictMode -Version 3.0            #
+$ErrorActionPreference = "Stop"        #
+########################################
+
+[string]$FirmwareVersion = $args[0]
+[string]$ReleaseVersion = $args[1]
+[string]$RepoSelf = $args[2]
+[string]$RepoUnleashed = $args[3]
+[bool]$ForGithubActions = $true
+
+################################################################################################################################
+function CleanInput
+{
+    param(
+        [string]
+        $DurtyString
+    )
+    return $DurtyString -replace ('[^a-zA-Z\d_\-\,\.\t\n\r\:\;]', '')
+}
+
+################################################################################################################################
+
+$Output = @{
+    RELEASE_VERSION = $ReleaseVersion
+    CURRENT_TAG     = $FirmwareVersion
+    REMOTE_TAG_INFO = $FirmwareVersion
+    RELEASE_TYPE = 0
+}
+
+$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.REMOTE_TAG_INFO = Write-Host ('[{0}]({1}/releases/tag/{2})' `
+        -f $LatestFirmware, $RepoUnleashed, $LatestFirmware)
+if (($FirmwareVersionNumber -gt $StoredFirmwareVersionNumber) -and ( $Delta -gt [TimeSpan]::FromMinutes(10)))
+{
+    $Output.REMOTE_TAG_INFO = $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
+}
+
+$PublishDates = (gh api -H "Accept: application/vnd.github+json" `
+        -H "X-GitHub-Api-Version: 2022-11-28" "/repos/$( $RepoSelf )/releases?per_page=1" `
+    | ConvertFrom-Json | Select-Object published_at, created_at)
+$LastPublished = ($null -eq $PublishDates.published_at ? $PublishDates.created_at : $PublishDates.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.RELEASE_VERSION = $Tag
+    $Output.RELEASE_TYPE = 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.RELEASE_VERSION = $Tag
+    $Output.RELEASE_TYPE = 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.RELEASE_VERSION = $ParsedRepoVersion
+    $Output.RELEASE_TYPE = 3
+}
+else
+{
+    # none to release
+    Write-Host 'No new versions, sorry'
+}
+
+$Output.CURRENT_TAG = $LatestTag
+
+if($ForGithubActions) {
+    $Plain = New-Object -TypeName "System.Text.StringBuilder";
+    $Output.GetEnumerator() | ForEach-Object {
+        [void]$Plain.Append($_.Key)
+        [void]$Plain.Append('=')
+        [void]$Plain.AppendLine($_.Value)
+    }
+    Write-Output $Plain.ToString()
+} else {
+    $Output
+}

+ 13 - 12
.github/workflows/build-with-firmwware.yml

@@ -9,7 +9,7 @@ on:
         required: false
         type: string
   release:
-    types: [created,prereleased]
+    types: [ created,prereleased ]
   push:
     paths:
       - .github/workflows/build-with-firmware.yml
@@ -37,15 +37,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        firmware: [unlshd]
+        firmware: [ unlshd ]
         include:
           - firmware: unlshd
             url: ${{ vars.REPO_UNLEASHED }}
             version: ${{ vars.FIRMWARE_VERSION }}
-            src-included: 1
+            src-included: 0
           - firmware: official
             url: ${{ vars.REPO_OFFICIAL }}
             version: "official"
+            src-included: 0
     steps:
       - name: Set version
         env:
@@ -136,17 +137,17 @@ jobs:
       #        key: 'fbt=${{ env.FIRMWARE_VERSION }}'
       #
       - name: Remove other apps
-        shell: bash
+        shell: pwsh
         if: ${{ success() }}
-        # rm to remove problem FAP which includes non existent files
+        # rm to remove problem FAP which includes non-existent files
         run: |
-          rm -Rf ./applications/debug ./applications/examples
-          mkdir ./tmp
-          mv ./applications/external/application.fam ./tmp/
-          mv -fv ./applications/external/subbrute/ ./tmp/
-          rm -Rf ./applications/external/*
-          mv -f ./tmp/* ./applications/external/
-          rm -Rf ./tmp/
+          Remove-Item -Force -Recurse ./applications/debug -ErrorAction SilentlyContinue
+          Remove-Item -Force -Recurse ./applications/examples -ErrorAction SilentlyContinue
+#          New-Item -Force ./tmp -ItemType Directory -ErrorAction SilentlyContinue
+#          Copy-Item -Force -Recurse ./applications/external/subbrute/ ./tmp/ -ErrorAction SilentlyContinue
+#          Remove-Item -Force -Recurse ./applications/external/* -ErrorAction SilentlyContinue
+#          Copy-Item -Force -Recurse /tmp/* ./applications/external/ -ErrorAction SilentlyContinue
+#          Remove-Item -Force -Recurse ./tmp -ErrorAction SilentlyContinue
 
       - name: Build Firmware
         shell: bash

+ 68 - 67
.github/workflows/version-check.yml

@@ -1,67 +1,68 @@
-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 }}
-      CURRENT_TAG: ${{ vars.FIRMWARE_VERSION }}
-      REMOTE_TAG_INFO: ''
-      RELEASE_VERSION: ${{ vars.RELEASE_VERSION }}
-      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
-        with:
-          repository: "${{ env.REPO_SELF }}"
-          clean: "true"
-          submodules: "true"
-          token: ${{ secrets.FLIPPER_TOKEN }}
-      - name: Check firmware release
-        shell: pwsh
-        env:
-          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 }
-      - name: Print env values
-        run: env
-      - 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.REMOTE_TAG_INFO }}
-          repo_self: ${{ env.REPO_SELF }}
-          owner: ${{ github.repository_owner }}
-          current_tag: ${{ env.CURRENT_TAG }}
-          remote_tag_info: ${{ env.REMOTE_TAG_INFO }}
-
-      - 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 }}
+      CURRENT_TAG: ${{ vars.FIRMWARE_VERSION }}
+      REMOTE_TAG_INFO: ''
+      RELEASE_VERSION: ${{ vars.RELEASE_VERSION }}
+      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
+        with:
+          repository: "${{ env.REPO_SELF }}"
+          clean: "true"
+          submodules: "true"
+          token: ${{ secrets.FLIPPER_TOKEN }}
+      - name: Check firmware release
+        shell: pwsh
+        env:
+          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 }
+      - name: Print env values
+        run: env
+
+      - 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.REMOTE_TAG_INFO }}
+          repo_self: ${{ env.REPO_SELF }}
+          owner: ${{ github.repository_owner }}
+          current_tag: ${{ env.CURRENT_TAG }}
+          remote_tag_info: ${{ env.REMOTE_TAG_INFO }}
+
+      - 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