|
|
@@ -0,0 +1,126 @@
|
|
|
+name: "PR Build"
|
|
|
+run-name: "PR Build ${{ inputs.DEPLOY_TARGET }} triggered by ${{ github.EVENT_NAME }} (@${{ github.ACTOR }})"
|
|
|
+
|
|
|
+on:
|
|
|
+ pull_request:
|
|
|
+ types: [opened, reopened]
|
|
|
+
|
|
|
+jobs:
|
|
|
+ build-for-pr:
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ env:
|
|
|
+ REPO_SELF: ${{ vars.REPO_SELF }}
|
|
|
+ APP_PATH: "applications_user/subbrute"
|
|
|
+ RELATIVE_PATH: "applications/external/subbrute"
|
|
|
+ PREV_TAG: ""
|
|
|
+ APP_NAME: ""
|
|
|
+ ZIP_NAME: ""
|
|
|
+ ZIP_TAG: ""
|
|
|
+ TGZ_NAME: ""
|
|
|
+ TGZ_TAG: ""
|
|
|
+ SHA: ""
|
|
|
+ FW_VERSION: ""
|
|
|
+ RELEASE_VERSION: ""
|
|
|
+ strategy:
|
|
|
+ fail-fast: false
|
|
|
+ matrix:
|
|
|
+ firmware: [unlshd, official]
|
|
|
+ include:
|
|
|
+ - firmware: unlshd
|
|
|
+ url: ${{ vars.REPO_UNLEASHED }}
|
|
|
+ version: ${{ vars.FIRMWARE_VERSION }}
|
|
|
+ src-included: 0
|
|
|
+ - firmware: official
|
|
|
+ url: ${{ vars.REPO_OFFICIAL }}
|
|
|
+ version: official
|
|
|
+ src-included: 0
|
|
|
+ steps:
|
|
|
+ - name: Copy Firmware Files
|
|
|
+ uses: actions/checkout@v4
|
|
|
+ with:
|
|
|
+ repository: ${{ matrix.url }}
|
|
|
+ clean: true
|
|
|
+ submodules: true
|
|
|
+ ref: dev
|
|
|
+
|
|
|
+ - name: Copy Repo Files
|
|
|
+ if: ${{ matrix.src-included == 0 }}
|
|
|
+ uses: actions/checkout@v4
|
|
|
+ with:
|
|
|
+ repository: ${{ vars.REPO_SELF }}
|
|
|
+ clean: true
|
|
|
+ submodules: true
|
|
|
+ path: ${{ env.APP_PATH }}
|
|
|
+
|
|
|
+ - name: Remove other apps
|
|
|
+ shell: pwsh
|
|
|
+ # rm to remove problem FAP which includes non-existent files
|
|
|
+ run: |
|
|
|
+ Remove-Item -Force -Recurse ./applications/debug -ErrorAction SilentlyContinue
|
|
|
+ Remove-Item -Force -Recurse ./applications/examples -ErrorAction SilentlyContinue
|
|
|
+ Remove-Item -Force -Recurse ${{ env.RELATIVE_PATH }} -ErrorAction SilentlyContinue
|
|
|
+
|
|
|
+ - name: Get SHA of our application and release version
|
|
|
+ shell: pwsh
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.FLIPPER_TOKEN }}
|
|
|
+ INPUT_VERSION: ${{ inputs.version }}
|
|
|
+ run: |
|
|
|
+ Write-Output "::notice title=${{ matrix.firmware }} Input Version Number::v${{ inputs.version }}"
|
|
|
+ $fwInfo = ((gh release view --json tagName,url -R ${{ matrix.url }}) | ConvertFrom-Json)
|
|
|
+ cd '${{ env.APP_PATH }}'
|
|
|
+ $sha = (git rev-parse --verify HEAD)
|
|
|
+
|
|
|
+ $releaseVersion = ''
|
|
|
+ $latestTag = ((gh release view --json tagName,url -R ${{ vars.REPO_SELF }}) | ConvertFrom-Json ).tagName
|
|
|
+
|
|
|
+ if ( [string]::IsNullOrWhitespace($env:INPUT_VERSION) ) {
|
|
|
+ Write-Output "::notice title=${{ matrix.firmware }} Latest tag::$latestTag"
|
|
|
+
|
|
|
+ $lastIndex = $latestTag.LastIndexOf('.')
|
|
|
+
|
|
|
+ $minorValue = $latestTag.Substring($latestTag.LastIndexOf('.') + 1)
|
|
|
+ $minorValue = [Convert]::ToInt32($minorValue) + 1
|
|
|
+ $newTag = $latestTag.Substring(0, $lastIndex)
|
|
|
+
|
|
|
+ $releaseVersion = ('{0}.{1}' -f $newTag, $minorValue)
|
|
|
+ } else {
|
|
|
+ $releaseVersion = "$env:INPUT_VERSION"
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( $releaseVersion.StartsWith('v') ) {
|
|
|
+ $releaseVersion = $releaseVersion.Substring(1)
|
|
|
+ }
|
|
|
+
|
|
|
+ Write-Output "::notice title=${{ matrix.firmware }} PREV_TAG::$latestTag"
|
|
|
+ Write-Output "::notice title=${{ matrix.firmware }} RELEASE_VERSION::$releaseVersion"
|
|
|
+ Write-Output "::notice title=${{ matrix.firmware }} SHA::$sha"
|
|
|
+ Write-Output ('::notice title=${{ matrix.firmware }} FW_VERSION::{0}' -f $fwInfo.tagName)
|
|
|
+
|
|
|
+ Write-Output ('RELEASE_VERSION={0}' -f $releaseVersion) >> $env:GITHUB_ENV
|
|
|
+ Write-Output ('SHA={0}' -f $sha) >> $env:GITHUB_ENV
|
|
|
+ Write-Output ('FW_VERSION={0}' -f $fwInfo.tagName) >> $env:GITHUB_ENV
|
|
|
+ Write-Output ('PREV_TAG={0}' -f $latestTag) >> $env:GITHUB_ENV
|
|
|
+
|
|
|
+ - name: Build Firmware
|
|
|
+ shell: bash
|
|
|
+ if: ${{ success() }}
|
|
|
+ env:
|
|
|
+ FBT_NO_SYNC: 0
|
|
|
+ DIST_SUFFIX: ${{ matrix.version }}
|
|
|
+ WORKFLOW_BRANCH_OR_TAG: release-cfw
|
|
|
+ run: |
|
|
|
+ ./fbt COMPACT=1 DEBUG=0 FBT_NO_SYNC=0
|
|
|
+
|
|
|
+ - name: Build FAPs
|
|
|
+ shell: bash
|
|
|
+ if: ${{ success() }}
|
|
|
+ env:
|
|
|
+ FBT_NO_SYNC: 0
|
|
|
+ DIST_SUFFIX: ${{ matrix.version }}
|
|
|
+ WORKFLOW_BRANCH_OR_TAG: release-cfw
|
|
|
+ # rm to remove problem FAP which includes non-existent files
|
|
|
+ run: |
|
|
|
+ ./fbt COMPACT=1 DEBUG=0 FBT_NO_SYNC=0 fap_dist
|
|
|
+
|
|
|
+#EOF
|