forked from flipperdevices/flipperzero-firmware
-
-
Notifications
You must be signed in to change notification settings - Fork 545
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
48 changed files
with
577 additions
and
233 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,169 @@ | ||
name: 'Build' | ||
|
||
on: | ||
push: | ||
branches: | ||
- dev | ||
- "release*" | ||
tags: | ||
- '*' | ||
pull_request: | ||
|
||
env: | ||
TARGETS: f7 | ||
DEFAULT_TARGET: f7 | ||
|
||
jobs: | ||
main: | ||
runs-on: [self-hosted,FlipperZeroShell] | ||
steps: | ||
- name: 'Decontaminate previous build leftovers' | ||
run: | | ||
if [ -d .git ]; then | ||
git submodule status || git checkout "$(git rev-list --max-parents=0 HEAD | tail -n 1)" | ||
fi | ||
- name: 'Checkout code' | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
ref: ${{ github.event.pull_request.head.sha }} | ||
|
||
- name: 'Make artifacts directory' | ||
run: | | ||
rm -rf artifacts | ||
mkdir artifacts | ||
- 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" | ||
- name: 'Generate suffixes for comment' | ||
id: names | ||
run: | | ||
echo "::set-output name=branch_name::${BRANCH_NAME}" | ||
echo "::set-output name=commit_sha::${COMMIT_SHA}" | ||
echo "::set-output name=default_target::${DEFAULT_TARGET}" | ||
echo "::set-output name=suffix::${SUFFIX}" | ||
- name: 'Bundle scripts' | ||
if: ${{ !github.event.pull_request.head.repo.fork }} | ||
run: | | ||
tar czpf artifacts/flipper-z-any-scripts-${SUFFIX}.tgz scripts debug | ||
- name: 'Build the firmware' | ||
run: | | ||
set -e | ||
for TARGET in ${TARGETS}; do | ||
FBT_TOOLCHAIN_PATH=/runner/_work ./fbt TARGET_HW="$(echo "${TARGET}" | sed 's/f//')" \ | ||
copro_dist updater_package ${{ startsWith(github.ref, 'refs/tags') && 'DEBUG=0 COMPACT=1' || '' }} | ||
done | ||
- name: 'Move upload files' | ||
if: ${{ !github.event.pull_request.head.repo.fork }} | ||
run: | | ||
set -e | ||
for TARGET in ${TARGETS}; do | ||
mv dist/${TARGET}-*/* artifacts/ | ||
done | ||
- name: "Check for uncommitted changes" | ||
run: | | ||
git diff --exit-code | ||
- name: 'Bundle resources' | ||
if: ${{ !github.event.pull_request.head.repo.fork }} | ||
run: | | ||
tar czpf "artifacts/flipper-z-any-resources-${SUFFIX}.tgz" -C assets resources | ||
- name: 'Bundle core2 firmware' | ||
if: ${{ !github.event.pull_request.head.repo.fork }} | ||
run: | | ||
cp build/core2_firmware.tgz "artifacts/flipper-z-any-core2_firmware-${SUFFIX}.tgz" | ||
- name: 'Copy .map file' | ||
run: | | ||
cp build/f7-firmware-*/firmware.elf.map "artifacts/flipper-z-f7-firmware-${SUFFIX}.elf.map" | ||
- name: 'Upload artifacts to update server' | ||
if: ${{ !github.event.pull_request.head.repo.fork }} | ||
run: | | ||
mkdir -p ~/.ssh | ||
ssh-keyscan -p ${{ secrets.RSYNC_DEPLOY_PORT }} -H ${{ secrets.RSYNC_DEPLOY_HOST }} > ~/.ssh/known_hosts | ||
echo "${{ secrets.RSYNC_DEPLOY_KEY }}" > deploy_key; | ||
chmod 600 ./deploy_key; | ||
rsync -avzP --delete --mkpath \ | ||
-e 'ssh -p ${{ secrets.RSYNC_DEPLOY_PORT }} -i ./deploy_key' \ | ||
artifacts/ ${{ secrets.RSYNC_DEPLOY_USER }}@${{ secrets.RSYNC_DEPLOY_HOST }}:"${{ secrets.RSYNC_DEPLOY_BASE_PATH }}${BRANCH_NAME}/"; | ||
rm ./deploy_key; | ||
- name: 'Trigger update server reindex' | ||
if: ${{ !github.event.pull_request.head.repo.fork }} | ||
run: curl -X POST -F 'key=${{ secrets.REINDEX_KEY }}' ${{ secrets.REINDEX_URL }} | ||
|
||
- name: 'Find Previous Comment' | ||
if: ${{ !github.event.pull_request.head.repo.fork && github.event.pull_request }} | ||
uses: peter-evans/find-comment@v1 | ||
id: fc | ||
with: | ||
issue-number: ${{ github.event.pull_request.number }} | ||
comment-author: 'github-actions[bot]' | ||
body-includes: 'Compiled firmware for commit' | ||
|
||
- name: 'Create or update comment' | ||
if: ${{ !github.event.pull_request.head.repo.fork && github.event.pull_request}} | ||
uses: peter-evans/create-or-update-comment@v1 | ||
with: | ||
comment-id: ${{ steps.fc.outputs.comment-id }} | ||
issue-number: ${{ github.event.pull_request.number }} | ||
body: | | ||
**Compiled 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 | ||
|
||
compact: | ||
if: ${{ !startsWith(github.ref, 'refs/tags') }} | ||
runs-on: [self-hosted,FlipperZeroShell] | ||
steps: | ||
- name: 'Decontaminate previous build leftovers' | ||
run: | | ||
if [ -d .git ] | ||
then | ||
git submodule status \ | ||
|| git checkout "$(git rev-list --max-parents=0 HEAD | tail -n 1)" | ||
fi | ||
- name: 'Checkout code' | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
submodules: true | ||
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" | ||
- name: 'Build the firmware' | ||
run: | | ||
set -e | ||
for TARGET in ${TARGETS}; do | ||
FBT_TOOLCHAIN_PATH=/runner/_work ./fbt TARGET_HW="$(echo "${TARGET}" | sed 's/f//')" \ | ||
updater_package DEBUG=0 COMPACT=1 | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
name: 'Static C/C++ analysis with PVS-Studio' | ||
|
||
on: | ||
push: | ||
branches: | ||
- dev | ||
- "release*" | ||
tags: | ||
- '*' | ||
pull_request: | ||
|
||
env: | ||
TARGETS: f7 | ||
DEFAULT_TARGET: f7 | ||
|
||
jobs: | ||
analyse_c_cpp: | ||
if: ${{ !github.event.pull_request.head.repo.fork }} | ||
runs-on: [self-hosted, FlipperZeroShell] | ||
steps: | ||
- name: 'Decontaminate previous build leftovers' | ||
run: | | ||
if [ -d .git ]; then | ||
git submodule status || git checkout "$(git rev-list --max-parents=0 HEAD | tail -n 1)" | ||
fi | ||
- name: 'Checkout code' | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
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" | ||
- name: 'Generate suffixes for comment' | ||
if: ${{ !github.event.pull_request.head.repo.fork && github.event.pull_request }} | ||
id: names | ||
run: | | ||
echo "::set-output name=branch_name::${BRANCH_NAME}" | ||
echo "::set-output name=commit_sha::${COMMIT_SHA}" | ||
echo "::set-output name=default_target::${DEFAULT_TARGET}" | ||
echo "::set-output name=suffix::${SUFFIX}" | ||
- name: 'Make reports directory' | ||
run: | | ||
rm -rf reports/ | ||
mkdir reports | ||
- name: 'Generate compile_comands.json' | ||
run: | | ||
FBT_TOOLCHAIN_PATH=/runner/_work ./fbt COMPACT=1 version_json proto_ver icons firmware_cdb dolphin_internal dolphin_blocking | ||
- name: 'Static code analysis' | ||
run: | | ||
FBT_TOOLCHAIN_PATH=/runner/_work source scripts/toolchain/fbtenv.sh | ||
pvs-studio-analyzer credentials ${{ secrets.PVS_STUDIO_CREDENTIALS }} | ||
pvs-studio-analyzer analyze \ | ||
@.pvsoptions \ | ||
-j$(grep -c processor /proc/cpuinfo) \ | ||
-f build/f7-firmware-DC/compile_commands.json \ | ||
-o PVS-Studio.log | ||
- name: 'Convert PVS-Studio output to html page' | ||
run: plog-converter -a GA:1,2,3 -t fullhtml PVS-Studio.log -o reports/${DEFAULT_TARGET}-${SUFFIX} | ||
|
||
- name: 'Upload artifacts to update server' | ||
if: ${{ !github.event.pull_request.head.repo.fork }} | ||
run: | | ||
mkdir -p ~/.ssh | ||
ssh-keyscan -p ${{ secrets.RSYNC_DEPLOY_PORT }} -H ${{ secrets.RSYNC_DEPLOY_HOST }} > ~/.ssh/known_hosts | ||
echo "${{ secrets.RSYNC_DEPLOY_KEY }}" > deploy_key; | ||
chmod 600 ./deploy_key; | ||
rsync -avrzP --mkpath \ | ||
-e 'ssh -p ${{ secrets.RSYNC_DEPLOY_PORT }} -i ./deploy_key' \ | ||
reports/ ${{ secrets.RSYNC_DEPLOY_USER }}@${{ secrets.RSYNC_DEPLOY_HOST }}:/home/data/firmware-pvs-studio-report/"${BRANCH_NAME}/"; | ||
rm ./deploy_key; | ||
- name: 'Find Previous Comment' | ||
if: ${{ !github.event.pull_request.head.repo.fork && github.event.pull_request }} | ||
uses: peter-evans/find-comment@v1 | ||
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}} | ||
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://update.flipperzero.one/builds/firmware-pvs-studio-report/${{steps.names.outputs.branch_name}}/${{steps.names.outputs.default_target}}-${{steps.names.outputs.suffix}}/index.html) | ||
edit-mode: replace |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
/core2_firmware | ||
/resources/Manifest | ||
/resources/apps/* | ||
/resources/apps/* | ||
/resources/dolphin/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Oops, something went wrong.