removed github folder
This commit is contained in:
		
							parent
							
								
									d1832d5e90
								
							
						
					
					
						commit
						f199beafb2
					
				
							
								
								
									
										68
									
								
								.github/CODEOWNERS
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										68
									
								
								.github/CODEOWNERS
									
									
									
									
										vendored
									
									
								
							| @ -1,68 +0,0 @@ | |||||||
| # Who owns all the fish by default |  | ||||||
| * @skotopes @DrZlo13 @hedger |  | ||||||
| 
 |  | ||||||
| # Apps |  | ||||||
| /applications/debug/bt_debug_app/ @skotopes @DrZlo13 @hedger @gornekich |  | ||||||
| /applications/debug/accessor/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/debug/battery_test_app/ @skotopes @DrZlo13 @hedger @gornekich |  | ||||||
| /applications/debug/bt_debug_app/ @skotopes @DrZlo13 @hedger @gornekich |  | ||||||
| /applications/debug/file_browser_test/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/debug/lfrfid_debug/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/debug/text_box_test/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/debug/uart_echo/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/debug/usb_mouse/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/debug/usb_test/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| 
 |  | ||||||
| /applications/main/archive/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/main/bad_usb/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/main/gpio/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/main/ibutton/ @skotopes @DrZlo13 @hedger @gsurkov |  | ||||||
| /applications/main/infrared/ @skotopes @DrZlo13 @hedger @gsurkov |  | ||||||
| /applications/main/nfc/ @skotopes @DrZlo13 @hedger @gornekich @Astrrra |  | ||||||
| /applications/main/subghz/ @skotopes @DrZlo13 @hedger @Skorpionm |  | ||||||
| /applications/main/u2f/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| 
 |  | ||||||
| /applications/services/bt/ @skotopes @DrZlo13 @hedger @gornekich |  | ||||||
| /applications/services/cli/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/services/crypto/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/services/desktop/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/services/dolphin/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/services/power/ @skotopes @DrZlo13 @hedger @gornekich |  | ||||||
| /applications/services/rpc/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| 
 |  | ||||||
| /applications/services/bt_settings_app/ @skotopes @DrZlo13 @hedger @gornekich |  | ||||||
| /applications/services/desktop_settings/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/services/dolphin_passport/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /applications/services/power_settings_app/ @skotopes @DrZlo13 @hedger @gornekich |  | ||||||
| 
 |  | ||||||
| /applications/system/storage_move_to_sd/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| 
 |  | ||||||
| /applications/debug/unit_tests/ @skotopes @DrZlo13 @hedger @nminaylov @gornekich @Astrrra @gsurkov @Skorpionm |  | ||||||
| 
 |  | ||||||
| /applications/examples/example_thermo/ @skotopes @DrZlo13 @hedger @gsurkov |  | ||||||
| 
 |  | ||||||
| # Firmware targets |  | ||||||
| /targets/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| 
 |  | ||||||
| # Assets |  | ||||||
| /applications/main/infrared/resources/ @skotopes @DrZlo13 @hedger @gsurkov |  | ||||||
| 
 |  | ||||||
| # Documentation |  | ||||||
| /documentation/ @skotopes @DrZlo13 @hedger @drunkbatya |  | ||||||
| /scripts/toolchain/ @skotopes @DrZlo13 @hedger @drunkbatya |  | ||||||
| 
 |  | ||||||
| # Lib |  | ||||||
| /lib/stm32wb_copro/ @skotopes @DrZlo13 @hedger @gornekich |  | ||||||
| /lib/digital_signal/ @skotopes @DrZlo13 @hedger @gornekich |  | ||||||
| /lib/infrared/ @skotopes @DrZlo13 @hedger @gsurkov |  | ||||||
| /lib/lfrfid/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /lib/libusb_stm32/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /lib/mbedtls/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /lib/micro-ecc/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /lib/nanopb/ @skotopes @DrZlo13 @hedger @nminaylov |  | ||||||
| /lib/nfc/ @skotopes @DrZlo13 @hedger @gornekich @Astrrra |  | ||||||
| /lib/one_wire/ @skotopes @DrZlo13 @hedger @gsurkov |  | ||||||
| /lib/subghz/ @skotopes @DrZlo13 @hedger @Skorpionm |  | ||||||
| 
 |  | ||||||
| # CI/CD |  | ||||||
| /.github/workflows/ @skotopes @DrZlo13 @hedger @drunkbatya |  | ||||||
							
								
								
									
										46
									
								
								.github/ISSUE_TEMPLATE/01_bug_report.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								.github/ISSUE_TEMPLATE/01_bug_report.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,46 +0,0 @@ | |||||||
| name: Bug report |  | ||||||
| description: File a bug reports regarding the firmware. |  | ||||||
| labels: ['bug'] |  | ||||||
| body: |  | ||||||
| - type: markdown |  | ||||||
|   attributes: |  | ||||||
|     value: | |  | ||||||
|       Thank you for taking the time to fill out an issue, this template is meant for any issues related to the Flipper Zero firmware. |  | ||||||
|       If you require help with the Flipper zero and its firmware, we ask that you join [our forum](https://forum.flipperzero.one) |  | ||||||
| - type: textarea |  | ||||||
|   id: description |  | ||||||
|   attributes: |  | ||||||
|     label: Describe the bug. |  | ||||||
|     description: "A clear and concise description of what the bug is." |  | ||||||
|   validations: |  | ||||||
|     required: true |  | ||||||
| - type: textarea |  | ||||||
|   id: repro |  | ||||||
|   attributes:  |  | ||||||
|     label: Reproduction |  | ||||||
|     description: "How can this bug be reproduced?" |  | ||||||
|     placeholder: | |  | ||||||
|       1. Switch on... |  | ||||||
|       2. Press button '....' |  | ||||||
|       3. Wait for the moon phase |  | ||||||
|       4. It burns |  | ||||||
|   validations: |  | ||||||
|     required: true |  | ||||||
| - type: input |  | ||||||
|   id: target |  | ||||||
|   attributes: |  | ||||||
|     label: Target |  | ||||||
|     description: Specify the target |  | ||||||
|     # Target seems to be largely ignored by outside sources. |  | ||||||
| - type: textarea |  | ||||||
|   id: logs |  | ||||||
|   attributes: |  | ||||||
|     label: Logs |  | ||||||
|     description: Attach your debug logs here |  | ||||||
|     render: Text |  | ||||||
|     # Avoid rendering as Markdown here. |  | ||||||
| - type: textarea |  | ||||||
|   id: anything-else |  | ||||||
|   attributes: |  | ||||||
|     label: Anything else? |  | ||||||
|     description: Let us know if you have anything else to share. |  | ||||||
							
								
								
									
										21
									
								
								.github/ISSUE_TEMPLATE/02_enhancements.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								.github/ISSUE_TEMPLATE/02_enhancements.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,21 +0,0 @@ | |||||||
| name: Enhancements |  | ||||||
| description: Suggest improvements for any existing functionality within the firmware. |  | ||||||
| body: |  | ||||||
| - type: markdown |  | ||||||
|   attributes: |  | ||||||
|     value: | |  | ||||||
|       Thank you for taking the time to fill out an issue. This template is meant for feature requests and improvements to already existing functionality. |  | ||||||
|       If you require help with the Flipper zero and its firmware, we ask that you join [our forum](https://forum.flipperzero.one) |  | ||||||
| - type: textarea |  | ||||||
|   id: proposal |  | ||||||
|   attributes: |  | ||||||
|     label: "Describe the enhancement you're suggesting." |  | ||||||
|     description: | |  | ||||||
|       Feel free to describe in as much detail as you wish. |  | ||||||
|   validations: |  | ||||||
|     required: true |  | ||||||
| - type: textarea |  | ||||||
|   id: anything-else |  | ||||||
|   attributes: |  | ||||||
|     label: Anything else? |  | ||||||
|     description: Let us know if you have anything else to share. |  | ||||||
							
								
								
									
										24
									
								
								.github/ISSUE_TEMPLATE/03_feature_request.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								.github/ISSUE_TEMPLATE/03_feature_request.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,24 +0,0 @@ | |||||||
| name: Feature Request |  | ||||||
| description: For feature requests regarding the firmware. |  | ||||||
| labels: ['feature request'] |  | ||||||
| body: |  | ||||||
| - type: markdown |  | ||||||
|   attributes: |  | ||||||
|     value: | |  | ||||||
|       Thank you for taking the time to fill out an issue, this template is meant for any feature suggestions. |  | ||||||
|       If you require help with the Flipper zero and its firmware, we ask that you join [our forum](https://forum.flipperzero.one) |  | ||||||
| - type: textarea |  | ||||||
|   id: proposal |  | ||||||
|   attributes: |  | ||||||
|     label: "Description of the feature you're suggesting." |  | ||||||
|     description: | |  | ||||||
|       Please describe your feature request in as many details as possible. |  | ||||||
|         - Describe what it should do. |  | ||||||
|         - Note whether it is to extend existing functionality or introduce new functionality. |  | ||||||
|   validations: |  | ||||||
|     required: true |  | ||||||
| - type: textarea |  | ||||||
|   id: anything-else |  | ||||||
|   attributes: |  | ||||||
|     label: Anything else? |  | ||||||
|     description: Let us know if you have anything else to share. |  | ||||||
							
								
								
									
										5
									
								
								.github/ISSUE_TEMPLATE/config.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/ISSUE_TEMPLATE/config.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,5 +0,0 @@ | |||||||
| blank_issues_enabled: true |  | ||||||
| contact_links: |  | ||||||
|   - name: Need help? |  | ||||||
|     url: https://forum.flipperzero.one |  | ||||||
|     about: For any question regarding on how to use the Flipper Zero and its firmware. |  | ||||||
							
								
								
									
										78
									
								
								.github/actions/submit_sdk/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										78
									
								
								.github/actions/submit_sdk/action.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,78 +0,0 @@ | |||||||
| name: Submit SDK to Catalog |  | ||||||
| author: hedger |  | ||||||
| description: | |  | ||||||
|   This action checks if SDK exists in the catalog and if not, adds and/or publishes it. |  | ||||||
| 
 |  | ||||||
| inputs: |  | ||||||
|   catalog-url: |  | ||||||
|     description: The URL of the Catalog API. Must not be empty or end with a /. |  | ||||||
|     required: true |  | ||||||
|   catalog-api-token: |  | ||||||
|     description: The token to use to authenticate with the Catalog API. Must not be empty. |  | ||||||
|     required: true |  | ||||||
|   firmware-api: |  | ||||||
|     description: Fimware's API version, major.minor |  | ||||||
|     required: true |  | ||||||
|   firmware-target: |  | ||||||
|     description: Firmware's target, e.g. f7/f18 |  | ||||||
|     required: true |  | ||||||
|   firmware-version: |  | ||||||
|     description: Firmware's version, e.g. 0.13.37-rc3, or 0.13.37 |  | ||||||
|     required: true |  | ||||||
| 
 |  | ||||||
| runs: |  | ||||||
|   using: composite |  | ||||||
|   steps: |  | ||||||
|     - name: Check inputs |  | ||||||
|       shell: bash |  | ||||||
|       run: | |  | ||||||
|         if [ -z "${{ inputs.catalog-url }}" ] ; then |  | ||||||
|           echo "Invalid catalog-url: ${{ inputs.catalog-url }}" |  | ||||||
|           exit 1 |  | ||||||
|         fi |  | ||||||
|         if [ -z "${{ inputs.catalog-api-token }}" ] ; then |  | ||||||
|           echo "Invalid catalog-api-token: ${{ inputs.catalog-api-token }}" |  | ||||||
|           exit 1 |  | ||||||
|         fi |  | ||||||
|         if ! echo "${{ inputs.firmware-api }}" | grep -q "^[0-9]\+\.[0-9]\+$" ; then |  | ||||||
|           echo "Invalid firmware-api: ${{ inputs.firmware-api }}" |  | ||||||
|           exit 1 |  | ||||||
|         fi |  | ||||||
|         if ! echo "${{ inputs.firmware-target }}" | grep -q "^f[0-9]\+$" ; then |  | ||||||
|           echo "Invalid firmware-target: ${{ inputs.firmware-target }}" |  | ||||||
|           exit 1 |  | ||||||
|         fi |  | ||||||
|         if ! echo "${{ inputs.firmware-version }}" | grep -q "^[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc\)\?\([0-9]\+\)\?$" ; then |  | ||||||
|           echo "Invalid firmware-version: ${{ inputs.firmware-version }}" |  | ||||||
|           exit 1 |  | ||||||
|         fi |  | ||||||
|     - name: Submit SDK |  | ||||||
|       shell: bash |  | ||||||
|       run: | |  | ||||||
|         curl -sX 'GET' \ |  | ||||||
|           '${{ inputs.catalog-url }}/api/v0/0/sdk?length=500' \ |  | ||||||
|           -H 'Accept: application/json' > sdk_versions.json |  | ||||||
|         if jq -r -e ".[] | select((.api == \"${{ inputs.firmware-api }}\") and .target == \"${{ inputs.firmware-target }}\")" sdk_versions.json > found_sdk.json ; then |  | ||||||
|           echo "API version ${{ inputs.firmware-api }} already exists in catalog" |  | ||||||
|           if [ $(jq -r -e ".released_at" found_sdk.json) != "null" ] ; then |  | ||||||
|             echo "API version is already released" |  | ||||||
|             exit 0 |  | ||||||
|           fi |  | ||||||
|           if ! echo "${{ inputs.firmware-version }}" | grep -q -- "-rc" ; then |  | ||||||
|             SDK_ID=$(jq -r ._id found_sdk.json) |  | ||||||
|             echo "Marking SDK $SDK_ID as released" |  | ||||||
|             curl -X 'POST' \ |  | ||||||
|               "${{ inputs.catalog-url }}/api/v0/0/sdk/${SDK_ID}/release" \ |  | ||||||
|               -H 'Accept: application/json' \ |  | ||||||
|               -H 'Authorization: Bearer ${{ inputs.catalog-api-token }}' \ |  | ||||||
|               -d '' |  | ||||||
|           fi |  | ||||||
|         else |  | ||||||
|           echo "API version ${{ inputs.firmware-api }} doesn't exist in catalog, adding" |  | ||||||
|           curl -X 'POST' \ |  | ||||||
|             '${{ inputs.catalog-url }}/api/v0/0/sdk' \ |  | ||||||
|             -H 'Accept: application/json' \ |  | ||||||
|             -H 'Authorization: Bearer ${{ inputs.catalog-api-token }}' \ |  | ||||||
|             -H 'Content-Type: application/json' \ |  | ||||||
|             -d "{\"name\": \"${{ inputs.firmware-version }}\", \"target\": \"${{ inputs.firmware-target }}\", \"api\": \"${{ inputs.firmware-api }}\"}" |  | ||||||
|         fi |  | ||||||
							
								
								
									
										
											BIN
										
									
								
								.github/assets/Born2bSportyV2.ttf
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.github/assets/Born2bSportyV2.ttf
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.github/assets/dark_theme_banner.png
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.github/assets/dark_theme_banner.png
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 48 KiB | 
							
								
								
									
										
											BIN
										
									
								
								.github/assets/latest-firmware-template.png
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.github/assets/latest-firmware-template.png
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 19 KiB | 
							
								
								
									
										
											BIN
										
									
								
								.github/assets/light_theme_banner.png
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.github/assets/light_theme_banner.png
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 44 KiB | 
							
								
								
									
										13
									
								
								.github/pull_request_template.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.github/pull_request_template.md
									
									
									
									
										vendored
									
									
								
							| @ -1,13 +0,0 @@ | |||||||
| # What's new |  | ||||||
| 
 |  | ||||||
| - [ Describe changes here ] |  | ||||||
| 
 |  | ||||||
| # Verification  |  | ||||||
| 
 |  | ||||||
| - [ Describe how to verify changes ] |  | ||||||
| 
 |  | ||||||
| # Checklist (For Reviewer) |  | ||||||
| 
 |  | ||||||
| - [ ] PR has description of feature/bug or link to Confluence/Jira task |  | ||||||
| - [ ] Description contains actions to verify feature/bugfix |  | ||||||
| - [ ] I've built this code, uploaded it to the device and verified feature/bugfix |  | ||||||
							
								
								
									
										170
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										170
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,170 +0,0 @@ | |||||||
| name: 'Build' |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|       - dev |  | ||||||
|     tags: |  | ||||||
|       - '*' |  | ||||||
|   pull_request: |  | ||||||
| 
 |  | ||||||
| env: |  | ||||||
|   DEFAULT_TARGET: f7 |  | ||||||
|   FBT_TOOLCHAIN_PATH: /runner/_work |  | ||||||
|   FBT_GIT_SUBMODULE_SHALLOW: 1 |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   main: |  | ||||||
|     runs-on: [self-hosted, FlipperZeroShell] |  | ||||||
|     strategy: |  | ||||||
|       fail-fast: false |  | ||||||
|       matrix: |  | ||||||
|         target: [f7, f18]     |  | ||||||
|     steps: |  | ||||||
|       - name: 'Wipe workspace' |  | ||||||
|         run: find ./ -mount -maxdepth 1 -exec rm -rf {} \; |  | ||||||
| 
 |  | ||||||
|       - name: 'Checkout code' |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|         with: |  | ||||||
|           fetch-depth: 1 |  | ||||||
|           ref: ${{ github.event.pull_request.head.sha }} |  | ||||||
| 
 |  | ||||||
|       - name: 'Get commit details' |  | ||||||
|         id: names |  | ||||||
|         run: | |  | ||||||
|           BUILD_TYPE='DEBUG=1 COMPACT=0' |  | ||||||
|           if [[ ${{ github.event_name }} == 'pull_request' ]]; then |  | ||||||
|             TYPE="pull" |  | ||||||
|           elif [[ "${{ github.ref }}" == "refs/tags/"* ]]; then |  | ||||||
|             TYPE="tag" |  | ||||||
|             BUILD_TYPE='DEBUG=0 COMPACT=1' |  | ||||||
|           else |  | ||||||
|             TYPE="other" |  | ||||||
|           fi |  | ||||||
|           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}" |  | ||||||
|           echo "event_type=$TYPE" >> $GITHUB_OUTPUT |  | ||||||
|           echo "FBT_BUILD_TYPE=$BUILD_TYPE" >> $GITHUB_ENV |  | ||||||
|           echo "TARGET=${{ matrix.target }}" >> $GITHUB_ENV |  | ||||||
|           echo "TARGET_HW=$(echo "${{ matrix.target }}" | sed 's/f//')" >> $GITHUB_ENV |  | ||||||
| 
 |  | ||||||
|       - name: 'Check API versions for consistency between targets' |  | ||||||
|         run: | |  | ||||||
|           set -e |  | ||||||
|           N_API_HEADER_SIGNATURES=`ls -1 targets/f*/api_symbols.csv | xargs -I {} sh -c "head -n2 {} | md5sum" | sort -u | wc -l` |  | ||||||
|           if [ $N_API_HEADER_SIGNATURES != 1 ] ; then |  | ||||||
|             echo API versions aren\'t matching for available targets. Please update! |  | ||||||
|             echo API versions are: |  | ||||||
|             head -n2 targets/f*/api_symbols.csv |  | ||||||
|             exit 1 |  | ||||||
|           fi |  | ||||||
| 
 |  | ||||||
|       - name: 'Build the firmware and apps' |  | ||||||
|         id: build-fw |  | ||||||
|         run: | |  | ||||||
|           ./fbt TARGET_HW=$TARGET_HW $FBT_BUILD_TYPE copro_dist updater_package fap_dist |  | ||||||
|           echo "firmware_api=$(./fbt TARGET_HW=$TARGET_HW get_apiversion)" >> $GITHUB_OUTPUT |  | ||||||
| 
 |  | ||||||
|       - name: 'Check for uncommitted changes' |  | ||||||
|         run: | |  | ||||||
|           git diff --exit-code |  | ||||||
| 
 |  | ||||||
|       - name: 'Copy build output' |  | ||||||
|         run: | |  | ||||||
|           set -e |  | ||||||
|           rm -rf artifacts map_analyser_files || true |  | ||||||
|           mkdir artifacts map_analyser_files |  | ||||||
|           cp dist/${TARGET}-*/* artifacts/ || true |  | ||||||
|           tar czpf "artifacts/flipper-z-${TARGET}-resources-${SUFFIX}.tgz" \ |  | ||||||
|             -C build/latest resources |  | ||||||
|           tar czpf "artifacts/flipper-z-${TARGET}-debugapps-${SUFFIX}.tgz" \ |  | ||||||
|             -C dist/${TARGET}-*/apps/Debug . |  | ||||||
|           tar czpf "artifacts/flipper-z-${TARGET}-appsymbols-${SUFFIX}.tgz" \ |  | ||||||
|             -C dist/${TARGET}-*/debug_elf . |  | ||||||
| 
 |  | ||||||
|       - name: 'Copy universal artifacts' |  | ||||||
|         if: ${{ !github.event.pull_request.head.repo.fork && matrix.target == env.DEFAULT_TARGET }} |  | ||||||
|         run: | |  | ||||||
|           tar czpf "artifacts/flipper-z-any-scripts-${SUFFIX}.tgz" scripts |  | ||||||
|           cp build/core2_firmware.tgz "artifacts/flipper-z-any-core2_firmware-${SUFFIX}.tgz" |  | ||||||
| 
 |  | ||||||
|       - name: 'Upload artifacts to update server' |  | ||||||
|         if: ${{ !github.event.pull_request.head.repo.fork }} |  | ||||||
|         run: | |  | ||||||
|           FILES=$(for ARTIFACT in $(find artifacts -maxdepth 1 -not -type d); do echo "-F files=@${ARTIFACT}"; done) |  | ||||||
|           curl --fail -L -H "Token: ${{ secrets.INDEXER_TOKEN }}" \ |  | ||||||
|               -F "branch=${BRANCH_NAME}" \ |  | ||||||
|               -F "version_token=${COMMIT_SHA}" \ |  | ||||||
|               ${FILES[@]} \ |  | ||||||
|               "${{ secrets.INDEXER_URL }}"/firmware/uploadfiles |  | ||||||
| 
 |  | ||||||
|       - name: 'Copy & analyse map analyser files' |  | ||||||
|         if: ${{ !github.event.pull_request.head.repo.fork && matrix.target == env.DEFAULT_TARGET }} |  | ||||||
|         run: | |  | ||||||
|           cp build/${DEFAULT_TARGET}-firmware-*/firmware.elf.map map_analyser_files/firmware.elf.map |  | ||||||
|           cp build/${DEFAULT_TARGET}-firmware-*/firmware.elf map_analyser_files/firmware.elf |  | ||||||
|           cp ${{ github.event_path }} map_analyser_files/event.json |  | ||||||
|           source scripts/toolchain/fbtenv.sh |  | ||||||
|           get_size() |  | ||||||
|           { |  | ||||||
|             SECTION="$1"; |  | ||||||
|             arm-none-eabi-size \ |  | ||||||
|               -A map_analyser_files/firmware.elf \ |  | ||||||
|               | grep "^$SECTION" | awk '{print $2}' |  | ||||||
|           } |  | ||||||
|           export BSS_SIZE="$(get_size ".bss")" |  | ||||||
|           export TEXT_SIZE="$(get_size ".text")" |  | ||||||
|           export RODATA_SIZE="$(get_size ".rodata")" |  | ||||||
|           export DATA_SIZE="$(get_size ".data")" |  | ||||||
|           export FREE_FLASH_SIZE="$(get_size ".free_flash")" |  | ||||||
|           python3 -m pip install mariadb==1.1.6 cxxfilt==0.3.0 |  | ||||||
|           python3 scripts/map_parser.py map_analyser_files/firmware.elf.map map_analyser_files/firmware.elf.map.all |  | ||||||
|           python3 scripts/map_mariadb_insert.py \ |  | ||||||
|               ${{ secrets.AMAP_MARIADB_USER }} \ |  | ||||||
|               ${{ secrets.AMAP_MARIADB_PASSWORD }} \ |  | ||||||
|               ${{ secrets.AMAP_MARIADB_HOST }} \ |  | ||||||
|               ${{ secrets.AMAP_MARIADB_PORT }} \ |  | ||||||
|               ${{ secrets.AMAP_MARIADB_DATABASE }} \ |  | ||||||
|               map_analyser_files/firmware.elf.map.all |  | ||||||
| 
 |  | ||||||
|       - name: 'Find previous comment' |  | ||||||
|         if: ${{ !github.event.pull_request.head.repo.fork && matrix.target == env.DEFAULT_TARGET && github.event.pull_request }} |  | ||||||
|         uses: peter-evans/find-comment@v2 |  | ||||||
|         id: find-comment |  | ||||||
|         with: |  | ||||||
|           issue-number: ${{ github.event.pull_request.number }} |  | ||||||
|           comment-author: 'github-actions[bot]' |  | ||||||
|           body-includes: 'Compiled ${{ matrix.target }} firmware for commit' |  | ||||||
| 
 |  | ||||||
|       - name: 'Create or update comment' |  | ||||||
|         if: ${{ !github.event.pull_request.head.repo.fork && matrix.target == env.DEFAULT_TARGET && github.event.pull_request }} |  | ||||||
|         uses: peter-evans/create-or-update-comment@v3 |  | ||||||
|         with: |  | ||||||
|           comment-id: ${{ steps.find-comment.outputs.comment-id }} |  | ||||||
|           issue-number: ${{ github.event.pull_request.number }} |  | ||||||
|           body: | |  | ||||||
|             **Compiled ${{ matrix.target }} firmware for commit `${{steps.names.outputs.commit_sha}}`:** |  | ||||||
|             - [📦 Update package](https://update.flipperzero.one/builds/firmware/${{steps.names.outputs.branch_name}}/flipper-z-${{steps.names.outputs.default_target}}-update-${{steps.names.outputs.suffix}}.tgz) |  | ||||||
|             - [📥 DFU file](https://update.flipperzero.one/builds/firmware/${{steps.names.outputs.branch_name}}/flipper-z-${{steps.names.outputs.default_target}}-full-${{steps.names.outputs.suffix}}.dfu) |  | ||||||
|             - [☁️ Web/App updater](https://lab.flipper.net/?url=https://update.flipperzero.one/builds/firmware/${{steps.names.outputs.branch_name}}/flipper-z-${{steps.names.outputs.default_target}}-update-${{steps.names.outputs.suffix}}.tgz&channel=${{steps.names.outputs.branch_name}}&version=${{steps.names.outputs.commit_sha}}) |  | ||||||
|           edit-mode: replace |  | ||||||
| 
 |  | ||||||
|       - name: 'SDK submission to staging catalog' |  | ||||||
|         if: ${{ steps.names.outputs.event_type == 'tag' && matrix.target == env.DEFAULT_TARGET }} |  | ||||||
|         uses: ./.github/actions/submit_sdk |  | ||||||
|         with: |  | ||||||
|           catalog-url: ${{ secrets.CATALOG_STAGING_URL }} |  | ||||||
|           catalog-api-token: ${{ secrets.CATALOG_STAGING_API_TOKEN }} |  | ||||||
|           firmware-api: ${{ steps.build-fw.outputs.firmware_api }} |  | ||||||
|           firmware-target: ${{ matrix.target }} |  | ||||||
|           firmware-version: ${{ steps.names.outputs.suffix }} |  | ||||||
| 
 |  | ||||||
|       - name: 'SDK submission to prod catalog' |  | ||||||
|         if: ${{ steps.names.outputs.event_type == 'tag' && matrix.target == env.DEFAULT_TARGET }} |  | ||||||
|         uses: ./.github/actions/submit_sdk |  | ||||||
|         with: |  | ||||||
|           catalog-url: ${{ secrets.CATALOG_URL }} |  | ||||||
|           catalog-api-token: ${{ secrets.CATALOG_API_TOKEN }} |  | ||||||
|           firmware-api: ${{ steps.build-fw.outputs.firmware_api }} |  | ||||||
|           firmware-target: ${{ matrix.target }} |  | ||||||
|           firmware-version: ${{ steps.names.outputs.suffix }} |  | ||||||
							
								
								
									
										86
									
								
								.github/workflows/build_compact.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										86
									
								
								.github/workflows/build_compact.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,86 +0,0 @@ | |||||||
| name: 'Compact build' |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   pull_request: |  | ||||||
| 
 |  | ||||||
| env: |  | ||||||
|   FBT_TOOLCHAIN_PATH: /runner/_work |  | ||||||
|   FBT_GIT_SUBMODULE_SHALLOW: 1 |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   compact: |  | ||||||
|     runs-on: [self-hosted, FlipperZeroShell] |  | ||||||
|     strategy: |  | ||||||
|       fail-fast: false |  | ||||||
|       matrix: |  | ||||||
|         target: [f7, f18] |  | ||||||
|     steps: |  | ||||||
|       - name: 'Wipe workspace' |  | ||||||
|         run: find ./ -mount -maxdepth 1 -exec rm -rf {} \; |  | ||||||
| 
 |  | ||||||
|       - name: 'Checkout code' |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|         with: |  | ||||||
|           fetch-depth: 1 |  | ||||||
|           submodules: false |  | ||||||
|           ref: ${{ github.event.pull_request.head.sha }} |  | ||||||
| 
 |  | ||||||
|       - name: 'Get commit details' |  | ||||||
|         run: | |  | ||||||
|           if [[ ${{ github.event_name }} == 'pull_request' ]]; then |  | ||||||
|             TYPE="pull" |  | ||||||
|           elif [[ "${{ github.ref }}" == "refs/tags/"* ]]; then |  | ||||||
|             TYPE="tag" |  | ||||||
|           else |  | ||||||
|             TYPE="other" |  | ||||||
|           fi |  | ||||||
|           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}" |  | ||||||
| 
 |  | ||||||
|       - name: 'Build the firmware' |  | ||||||
|         id: build-fw |  | ||||||
|         run: | |  | ||||||
|           set -e |  | ||||||
|           TARGET="$(echo '${{ matrix.target }}' | sed 's/f//')"; \ |  | ||||||
|           ./fbt TARGET_HW=$TARGET DEBUG=0 COMPACT=1 fap_dist updater_package |  | ||||||
|           echo "sdk-file=$(ls dist/${{ matrix.target }}-*/flipper-z-${{ matrix.target }}-sdk-*.zip)" >> $GITHUB_OUTPUT |  | ||||||
|           echo "hw-target-code=$TARGET" >> $GITHUB_OUTPUT |  | ||||||
| 
 |  | ||||||
|       - name: Deploy uFBT with SDK |  | ||||||
|         uses: flipperdevices/flipperzero-ufbt-action@v0.1 |  | ||||||
|         with: |  | ||||||
|           task: setup |  | ||||||
|           sdk-file: ${{ steps.build-fw.outputs.sdk-file }} |  | ||||||
|           sdk-hw-target: ${{ steps.build-fw.outputs.hw-target-code }} |  | ||||||
| 
 |  | ||||||
|       - name: Build test app with SDK |  | ||||||
|         run: | |  | ||||||
|           mkdir testapp |  | ||||||
|           cd testapp |  | ||||||
|           ufbt create APPID=testapp |  | ||||||
|           ufbt |  | ||||||
| 
 |  | ||||||
|       - name: Build example & external apps with uFBT |  | ||||||
|         run: | |  | ||||||
|           for appdir in 'applications/examples'; do |  | ||||||
|             for app in $(find "$appdir" -maxdepth 1 -mindepth 1 -type d); do |  | ||||||
|               pushd $app |  | ||||||
|               TARGETS_FAM=$(grep "targets" application.fam || echo "${{ matrix.target }}") |  | ||||||
|               if ! grep -q "${{ matrix.target }}" <<< $TARGETS_FAM ; then |  | ||||||
|                   echo Skipping unsupported app: $app |  | ||||||
|                   popd |  | ||||||
|                   continue |  | ||||||
|               fi |  | ||||||
|               echo Building $app |  | ||||||
|               ufbt |  | ||||||
|               popd |  | ||||||
|             done |  | ||||||
|           done |  | ||||||
| 
 |  | ||||||
| ## Uncomment this for a single job that will run only if all targets are built successfully           |  | ||||||
| #  report-status: |  | ||||||
| #    name: Report status |  | ||||||
| #    needs: [compact] |  | ||||||
| #    if: always() && !contains(needs.*.result, 'failure') |  | ||||||
| #    runs-on: [self-hosted, FlipperZeroShell] |  | ||||||
| #    steps: |  | ||||||
| #      - run: echo "All good ✨" ; |  | ||||||
							
								
								
									
										101
									
								
								.github/workflows/lint_and_submodule_check.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										101
									
								
								.github/workflows/lint_and_submodule_check.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,101 +0,0 @@ | |||||||
| name: 'Lint sources & check submodule integrity' |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   pull_request: |  | ||||||
| 
 |  | ||||||
| env: |  | ||||||
|   TARGETS: f7 |  | ||||||
|   FBT_TOOLCHAIN_PATH: /runner/_work |  | ||||||
|   SET_GH_OUTPUT: 1 |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   lint_sources_check_submodules: |  | ||||||
|     runs-on: [self-hosted, FlipperZeroShell] |  | ||||||
|     steps: |  | ||||||
|       - name: 'Wipe workspace' |  | ||||||
|         run: find ./ -mount -maxdepth 1 -exec rm -rf {} \; |  | ||||||
| 
 |  | ||||||
|       - name: 'Checkout code' |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|         with: |  | ||||||
|           fetch-depth: 2 |  | ||||||
|           ref: ${{ github.sha }} |  | ||||||
| 
 |  | ||||||
|       - name: 'Check protobuf branch' |  | ||||||
|         run: | |  | ||||||
|           git submodule update --init; |  | ||||||
|           SUB_PATH="assets/protobuf"; |  | ||||||
|           SUB_BRANCH="dev"; |  | ||||||
|           SUB_COMMITS_MIN=40; |  | ||||||
|           cd "$SUB_PATH"; |  | ||||||
|           SUBMODULE_HASH="$(git rev-parse HEAD)"; |  | ||||||
|           BRANCHES=$(git branch -r --contains "$SUBMODULE_HASH"); |  | ||||||
|           COMMITS_IN_BRANCH="$(git rev-list --count dev)"; |  | ||||||
|           if [ $COMMITS_IN_BRANCH -lt $SUB_COMMITS_MIN ]; then |  | ||||||
|             echo "name=fails::error" >> $GITHUB_OUTPUT; |  | ||||||
|             echo "::error::Error: Too few commits in $SUB_BRANCH of submodule $SUB_PATH: $COMMITS_IN_BRANCH(expected $SUB_COMMITS_MIN+)"; |  | ||||||
|             exit 1; |  | ||||||
|           fi |  | ||||||
|           if ! grep -q "/$SUB_BRANCH" <<< "$BRANCHES"; then |  | ||||||
|             echo "name=fails::error" >> $GITHUB_OUTPUT; |  | ||||||
|             echo "::error::Error: Submodule $SUB_PATH is not on branch $SUB_BRANCH"; |  | ||||||
|             exit 1; |  | ||||||
|           fi |  | ||||||
| 
 |  | ||||||
|       - name: 'Check for new TODOs' |  | ||||||
|         id: check_todos |  | ||||||
|         if: github.event_name == 'pull_request' |  | ||||||
|         run: | |  | ||||||
|           set +e; |  | ||||||
|           git diff --unified=0 --no-color ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | grep -E '^\+' | grep -i -E '(TODO|HACK|FIXME|XXX)[ :]' | grep -v -- '-nofl' > lines.log; |  | ||||||
|           MISSING_TICKETS=$( grep -v -E 'FL-[0-9]+' lines.log ); |  | ||||||
|           if [ -n "$MISSING_TICKETS" ]; then |  | ||||||
|             echo "Error: Missing ticket number in \`TODO\` comment(s)" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|             echo "\`\`\`" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|             echo "$MISSING_TICKETS" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|             echo "\`\`\`" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|             exit 1; |  | ||||||
|           else |  | ||||||
|             echo "No new TODOs without tickets found" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|           fi |  | ||||||
| 
 |  | ||||||
|       - name: 'Check Python code formatting' |  | ||||||
|         id: syntax_check_py |  | ||||||
|         if: always() |  | ||||||
|         run: | |  | ||||||
|           set +e; |  | ||||||
|           ./fbt -s lint_py 2>&1 | tee lint-py.log; |  | ||||||
|           if [ "${PIPESTATUS[0]}" -ne 0 ]; then |  | ||||||
|             # Save multiline output |  | ||||||
|             echo "errors=1" >> $GITHUB_OUTPUT; |  | ||||||
|             printf "Python Lint errors:\n\`\`\`\n" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|             echo "$(cat lint-py.log)" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|             printf "\n\`\`\`\n" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|             exit 1; |  | ||||||
|           else |  | ||||||
|             echo "Python Lint: all good ✨" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|           fi |  | ||||||
| 
 |  | ||||||
|       - name: 'Check C++ code formatting' |  | ||||||
|         id: syntax_check_cpp |  | ||||||
|         if: always() |  | ||||||
|         run: | |  | ||||||
|           set +e; |  | ||||||
|           ./fbt -s lint 2>&1 | tee lint-cpp.log; |  | ||||||
|           if [ "${PIPESTATUS[0]}" -ne 0 ]; then |  | ||||||
|             # Save multiline output |  | ||||||
|             echo "errors=1" >> $GITHUB_OUTPUT; |  | ||||||
|             printf "C Lint errors:\n\`\`\`\n" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|             echo "$(cat lint-cpp.log)" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|             printf "\n\`\`\`\n" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|             exit 1; |  | ||||||
|           else |  | ||||||
|             echo "C Lint: all good ✨" >> $GITHUB_STEP_SUMMARY; |  | ||||||
|           fi |  | ||||||
| 
 |  | ||||||
|       - name: Report code formatting errors |  | ||||||
|         if: ( steps.syntax_check_py.outputs.errors || steps.syntax_check_cpp.outputs.errors ) && github.event.pull_request |  | ||||||
|         run: | |  | ||||||
|           echo "Code formatting errors found"; |  | ||||||
|           echo "Please run './fbt format' or './fbt format_py' to fix them"; |  | ||||||
|           exit 1; |  | ||||||
							
								
								
									
										42
									
								
								.github/workflows/merge_report.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								.github/workflows/merge_report.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,42 +0,0 @@ | |||||||
| name: 'Check FL ticket in PR name' |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|       - dev |  | ||||||
| 
 |  | ||||||
| env: |  | ||||||
|   FBT_TOOLCHAIN_PATH: /runner/_work |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   merge_report: |  | ||||||
|     runs-on: [self-hosted, FlipperZeroShell] |  | ||||||
|     steps: |  | ||||||
|       - name: 'Wipe workspace' |  | ||||||
|         run: find ./ -mount -maxdepth 1 -exec rm -rf {} \; |  | ||||||
| 
 |  | ||||||
|       - name: 'Checkout code' |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|         with: |  | ||||||
|           fetch-depth: 1 |  | ||||||
|           ref: ${{ github.event.pull_request.head.sha }} |  | ||||||
| 
 |  | ||||||
|       - name: 'Get commit details' |  | ||||||
|         run: | |  | ||||||
|           if [[ ${{ github.event_name }} == 'pull_request' ]]; then |  | ||||||
|             TYPE="pull" |  | ||||||
|           elif [[ "${{ github.ref }}" == "refs/tags/"* ]]; then |  | ||||||
|             TYPE="tag" |  | ||||||
|           else |  | ||||||
|             TYPE="other" |  | ||||||
|           fi |  | ||||||
|           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}" |  | ||||||
| 
 |  | ||||||
|       - name: 'Check ticket and report' |  | ||||||
|         run: | |  | ||||||
|           source scripts/toolchain/fbtenv.sh |  | ||||||
|           python3 -m pip install slack_sdk |  | ||||||
|           python3 scripts/merge_report_qa.py \ |  | ||||||
|               ${{ secrets.QA_REPORT_SLACK_TOKEN }} \ |  | ||||||
|               ${{ secrets.QA_REPORT_SLACK_CHANNEL }} |  | ||||||
| 
 |  | ||||||
							
								
								
									
										88
									
								
								.github/workflows/pvs_studio.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										88
									
								
								.github/workflows/pvs_studio.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,88 +0,0 @@ | |||||||
| name: 'Static C/C++ analysis with PVS-Studio' |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|       - dev |  | ||||||
|   pull_request: |  | ||||||
| 
 |  | ||||||
| env: |  | ||||||
|   TARGETS: f7 |  | ||||||
|   DEFAULT_TARGET: f7 |  | ||||||
|   FBT_TOOLCHAIN_PATH: /runner/_work |  | ||||||
|   FBT_GIT_SUBMODULE_SHALLOW: 1 |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   analyse_c_cpp: |  | ||||||
|     if: ${{ !github.event.pull_request.head.repo.fork }} |  | ||||||
|     runs-on: [self-hosted, FlipperZeroShell] |  | ||||||
|     steps: |  | ||||||
|       - name: 'Wipe workspace' |  | ||||||
|         run: find ./ -mount -maxdepth 1 -exec rm -rf {} \; |  | ||||||
| 
 |  | ||||||
|       - name: 'Checkout code' |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|         with: |  | ||||||
|           fetch-depth: 1 |  | ||||||
|           ref: ${{ github.event.pull_request.head.sha }} |  | ||||||
| 
 |  | ||||||
|       - name: 'Get commit details' |  | ||||||
|         id: names |  | ||||||
|         run: | |  | ||||||
|           if [[ ${{ github.event_name }} == 'pull_request' ]]; then |  | ||||||
|             TYPE="pull" |  | ||||||
|           elif [[ "${{ github.ref }}" == "refs/tags/"* ]]; then |  | ||||||
|             TYPE="tag" |  | ||||||
|           else |  | ||||||
|             TYPE="other" |  | ||||||
|           fi |  | ||||||
|           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}" |  | ||||||
| 
 |  | ||||||
|       - name: 'Supply PVS credentials' |  | ||||||
|         run: | |  | ||||||
|           pvs-studio-analyzer credentials ${{ secrets.PVS_STUDIO_CREDENTIALS }} |  | ||||||
| 
 |  | ||||||
|       - name: 'Convert PVS-Studio output to html and detect warnings' |  | ||||||
|         id: pvs-warn |  | ||||||
|         run: | |  | ||||||
|           WARNINGS=0 |  | ||||||
|           ./fbt COMPACT=1 PVSNOBROWSER=1 firmware_pvs || WARNINGS=1 |  | ||||||
|           echo "warnings=${WARNINGS}" >> $GITHUB_OUTPUT |  | ||||||
| 
 |  | ||||||
|       - name: 'Upload report' |  | ||||||
|         if: ${{ !github.event.pull_request.head.repo.fork && (steps.pvs-warn.outputs.warnings != 0) }} |  | ||||||
|         uses: prewk/s3-cp-action@v2 |  | ||||||
|         with: |  | ||||||
|           aws_s3_endpoint: "${{ secrets.PVS_AWS_ENDPOINT }}" |  | ||||||
|           aws_access_key_id: "${{ secrets.PVS_AWS_ACCESS_KEY }}" |  | ||||||
|           aws_secret_access_key: "${{ secrets.PVS_AWS_SECRET_KEY }}" |  | ||||||
|           source: "./build/f7-firmware-DC/pvsreport" |  | ||||||
|           dest: "s3://${{ secrets.PVS_AWS_BUCKET }}/${{steps.names.outputs.branch_name}}/${{steps.names.outputs.default_target}}-${{steps.names.outputs.suffix}}/" |  | ||||||
|           flags: "--recursive --acl public-read" |  | ||||||
| 
 |  | ||||||
|       - name: 'Find Previous Comment' |  | ||||||
|         if: ${{ !github.event.pull_request.head.repo.fork && github.event.pull_request && (steps.pvs-warn.outputs.warnings != 0) }} |  | ||||||
|         uses: peter-evans/find-comment@v2 |  | ||||||
|         id: fc |  | ||||||
|         with: |  | ||||||
|           issue-number: ${{ github.event.pull_request.number }} |  | ||||||
|           comment-author: 'github-actions[bot]' |  | ||||||
|           body-includes: 'PVS-Studio report for commit' |  | ||||||
| 
 |  | ||||||
|       - name: 'Create or update comment' |  | ||||||
|         if: ${{ !github.event.pull_request.head.repo.fork && github.event.pull_request && (steps.pvs-warn.outputs.warnings != 0) }} |  | ||||||
|         uses: peter-evans/create-or-update-comment@v1 |  | ||||||
|         with: |  | ||||||
|           comment-id: ${{ steps.fc.outputs.comment-id }} |  | ||||||
|           issue-number: ${{ github.event.pull_request.number }} |  | ||||||
|           body: | |  | ||||||
|             **PVS-Studio report for commit `${{steps.names.outputs.commit_sha}}`:** |  | ||||||
|             - [Report](https://pvs.flipp.dev/${{steps.names.outputs.branch_name}}/${{steps.names.outputs.default_target}}-${{steps.names.outputs.suffix}}/index.html) |  | ||||||
|           edit-mode: replace |  | ||||||
| 
 |  | ||||||
|       - name: 'Raise exception' |  | ||||||
|         if: ${{ steps.pvs-warn.outputs.warnings != 0 }} |  | ||||||
|         run: | |  | ||||||
|           echo "Please fix all PVS warnings before merge" |  | ||||||
|           exit 1 |  | ||||||
| 
 |  | ||||||
							
								
								
									
										15
									
								
								.github/workflows/reindex.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.github/workflows/reindex.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,15 +0,0 @@ | |||||||
| name: 'Reindex' |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   release: |  | ||||||
|     types: [prereleased,released] |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   reindex: |  | ||||||
|     name: 'Reindex updates' |  | ||||||
|     runs-on: [self-hosted, FlipperZeroShell] |  | ||||||
|     steps: |  | ||||||
|       - name: Trigger reindex |  | ||||||
|         run: | |  | ||||||
|           curl --fail -L -H "Token: ${{ secrets.INDEXER_TOKEN }}" \ |  | ||||||
|               "${{ secrets.INDEXER_URL }}"/firmware/reindex |  | ||||||
							
								
								
									
										69
									
								
								.github/workflows/unit_tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										69
									
								
								.github/workflows/unit_tests.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,69 +0,0 @@ | |||||||
| name: 'Unit tests' |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   pull_request: |  | ||||||
| 
 |  | ||||||
| env: |  | ||||||
|   TARGETS: f7 |  | ||||||
|   DEFAULT_TARGET: f7 |  | ||||||
|   FBT_TOOLCHAIN_PATH: /opt |  | ||||||
|   FBT_GIT_SUBMODULE_SHALLOW: 1 |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   run_units_on_bench: |  | ||||||
|     runs-on: [self-hosted, FlipperZeroUnitTest] |  | ||||||
|     steps: |  | ||||||
|       - name: 'Wipe workspace' |  | ||||||
|         run: find ./ -mount -maxdepth 1 -exec rm -rf {} \; |  | ||||||
| 
 |  | ||||||
|       - name: Checkout code |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|         with: |  | ||||||
|           fetch-depth: 1 |  | ||||||
|           ref: ${{ github.event.pull_request.head.sha }} |  | ||||||
| 
 |  | ||||||
|       - name: 'Get flipper from device manager (mock)' |  | ||||||
|         id: device |  | ||||||
|         run: | |  | ||||||
|           echo "flipper=/dev/ttyACM0" >> $GITHUB_OUTPUT |  | ||||||
| 
 |  | ||||||
|       - name: 'Flash unit tests firmware' |  | ||||||
|         id: flashing |  | ||||||
|         if: success() |  | ||||||
|         timeout-minutes: 10 |  | ||||||
|         run: | |  | ||||||
|           ./fbt resources firmware_latest flash SWD_TRANSPORT_SERIAL=2A0906016415303030303032 LIB_DEBUG=1 FIRMWARE_APP_SET=unit_tests FORCE=1 |  | ||||||
| 
 |  | ||||||
|       - name: 'Wait for flipper and format ext' |  | ||||||
|         id: format_ext |  | ||||||
|         if: steps.flashing.outcome == 'success' |  | ||||||
|         timeout-minutes: 5 |  | ||||||
|         run: | |  | ||||||
|           source scripts/toolchain/fbtenv.sh |  | ||||||
|           python3 scripts/testing/await_flipper.py ${{steps.device.outputs.flipper}} |  | ||||||
|           python3 scripts/storage.py -p ${{steps.device.outputs.flipper}} format_ext |  | ||||||
| 
 |  | ||||||
|       - name: 'Copy assets and unit data, reboot and wait for flipper' |  | ||||||
|         id: copy |  | ||||||
|         if: steps.format_ext.outcome == 'success' |  | ||||||
|         timeout-minutes: 7 |  | ||||||
|         run: | |  | ||||||
|           source scripts/toolchain/fbtenv.sh |  | ||||||
|           python3 scripts/testing/await_flipper.py ${{steps.device.outputs.flipper}} |  | ||||||
|           rm -rf build/latest/resources/dolphin |  | ||||||
|           python3 scripts/storage.py -p ${{steps.device.outputs.flipper}} -f send build/latest/resources /ext |  | ||||||
|           python3 scripts/power.py -p ${{steps.device.outputs.flipper}} reboot |  | ||||||
|           python3 scripts/testing/await_flipper.py ${{steps.device.outputs.flipper}} |  | ||||||
| 
 |  | ||||||
|       - name: 'Run units and validate results' |  | ||||||
|         id: run_units |  | ||||||
|         if: steps.copy.outcome == 'success' |  | ||||||
|         timeout-minutes: 7 |  | ||||||
|         run: | |  | ||||||
|           source scripts/toolchain/fbtenv.sh |  | ||||||
|           python3 scripts/testing/units.py ${{steps.device.outputs.flipper}} |  | ||||||
| 
 |  | ||||||
|       - name: 'Check GDB output' |  | ||||||
|         if: failure() |  | ||||||
|         run: | |  | ||||||
|           ./fbt gdb_trace_all SWD_TRANSPORT_SERIAL=2A0906016415303030303032 LIB_DEBUG=1 FIRMWARE_APP_SET=unit_tests FORCE=1 |  | ||||||
							
								
								
									
										75
									
								
								.github/workflows/updater_test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										75
									
								
								.github/workflows/updater_test.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,75 +0,0 @@ | |||||||
| name: 'Updater test' |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   pull_request: |  | ||||||
| 
 |  | ||||||
| env: |  | ||||||
|   TARGETS: f7 |  | ||||||
|   DEFAULT_TARGET: f7 |  | ||||||
|   FBT_TOOLCHAIN_PATH: /opt |  | ||||||
|   FBT_GIT_SUBMODULE_SHALLOW: 1 |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   test_updater_on_bench: |  | ||||||
|     runs-on: [self-hosted, FlipperZeroUpdaterTest] |  | ||||||
|     steps: |  | ||||||
|       - name: 'Wipe workspace' |  | ||||||
|         run: find ./ -mount -maxdepth 1 -exec rm -rf {} \; |  | ||||||
| 
 |  | ||||||
|       - name: Checkout code |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|         with: |  | ||||||
|           fetch-depth: 1 |  | ||||||
|           submodules: false |  | ||||||
|           ref: ${{ github.event.pull_request.head.sha }} |  | ||||||
| 
 |  | ||||||
|       - name: 'Get flipper from device manager (mock)' |  | ||||||
|         id: device |  | ||||||
|         run: | |  | ||||||
|           echo "flipper=Rekigyn" >> $GITHUB_OUTPUT |  | ||||||
|           echo "stlink=0F020D026415303030303032" >> $GITHUB_OUTPUT |  | ||||||
| 
 |  | ||||||
|       - name: 'Flashing target firmware' |  | ||||||
|         id: first_full_flash |  | ||||||
|         timeout-minutes: 10 |  | ||||||
|         run: | |  | ||||||
|           source scripts/toolchain/fbtenv.sh |  | ||||||
|           ./fbt flash_usb_full PORT=${{steps.device.outputs.flipper}} FORCE=1 |  | ||||||
|           python3 scripts/testing/await_flipper.py ${{steps.device.outputs.flipper}} |  | ||||||
| 
 |  | ||||||
|       - name: 'Validating updater' |  | ||||||
|         id: second_full_flash |  | ||||||
|         timeout-minutes: 10 |  | ||||||
|         if: success() |  | ||||||
|         run: | |  | ||||||
|           source scripts/toolchain/fbtenv.sh |  | ||||||
|           ./fbt flash_usb PORT=${{steps.device.outputs.flipper}} FORCE=1 |  | ||||||
|           python3 scripts/testing/await_flipper.py ${{steps.device.outputs.flipper}} |  | ||||||
| 
 |  | ||||||
|       - name: 'Get last release tag' |  | ||||||
|         id: release_tag |  | ||||||
|         if: failure() |  | ||||||
|         run: | |  | ||||||
|           echo "tag=$(git tag -l --sort=-version:refname | grep -v "rc\|RC" | head -1)" >> $GITHUB_OUTPUT |  | ||||||
| 
 |  | ||||||
|       - name: 'Wipe workspace' |  | ||||||
|         run: find ./ -mount -maxdepth 1 -exec rm -rf {} \; |  | ||||||
| 
 |  | ||||||
|       - name: 'Checkout latest release' |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|         if: failure() |  | ||||||
|         with: |  | ||||||
|           fetch-depth: 1 |  | ||||||
|           ref: ${{ steps.release_tag.outputs.tag }} |  | ||||||
| 
 |  | ||||||
|       - name: 'Flash last release' |  | ||||||
|         if: failure() |  | ||||||
|         run: | |  | ||||||
|           ./fbt flash SWD_TRANSPORT_SERIAL=${{steps.device.outputs.stlink}} FORCE=1 |  | ||||||
| 
 |  | ||||||
|       - name: 'Wait for flipper and format ext' |  | ||||||
|         if: failure() |  | ||||||
|         run: | |  | ||||||
|           source scripts/toolchain/fbtenv.sh |  | ||||||
|           python3 scripts/testing/await_flipper.py ${{steps.device.outputs.flipper}} |  | ||||||
|           python3 scripts/storage.py -p ${{steps.device.outputs.flipper}} format_ext |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Andreas Fruhwirt
						Andreas Fruhwirt