mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2025-09-29 13:02:41 +02:00
Merge branch 'dev' into aaronjamt/issue-444
This commit is contained in:
4
.github/workflow_data/webhook.py
vendored
4
.github/workflow_data/webhook.py
vendored
@@ -33,7 +33,7 @@ if __name__ == "__main__":
|
|||||||
change = (
|
change = (
|
||||||
"Force Push"
|
"Force Push"
|
||||||
if event["forced"] and not count
|
if event["forced"] and not count
|
||||||
else f"{count} New Commit{'' if count == 1 else 's'}"
|
else f"{count} New Commit{'' if count == 1 else 's'}{' (Force Push)' if event['forced'] else ''}"
|
||||||
)
|
)
|
||||||
desc = f"[**{change}**]({event['compare']}) | [{branch}]({event['repository']['html_url']}/tree/{branch})\n"
|
desc = f"[**{change}**]({event['compare']}) | [{branch}]({event['repository']['html_url']}/tree/{branch})\n"
|
||||||
for i, commit in enumerate(event["commits"]):
|
for i, commit in enumerate(event["commits"]):
|
||||||
@@ -49,7 +49,7 @@ if __name__ == "__main__":
|
|||||||
desc = desc.rsplit("\n", 1)[0] + f"\n+ {count - i} more commits"
|
desc = desc.rsplit("\n", 1)[0] + f"\n+ {count - i} more commits"
|
||||||
break
|
break
|
||||||
url = event["compare"]
|
url = event["compare"]
|
||||||
color = 16723712 if event["forced"] else 11761899
|
color = 11761899
|
||||||
|
|
||||||
case "release":
|
case "release":
|
||||||
webhook = "RELEASE_WEBHOOK"
|
webhook = "RELEASE_WEBHOOK"
|
||||||
|
46
.github/workflows/build.yml
vendored
46
.github/workflows/build.yml
vendored
@@ -85,19 +85,22 @@ jobs:
|
|||||||
if ${{ github.ref_name == 'dev' }} ; then
|
if ${{ github.ref_name == 'dev' }} ; then
|
||||||
SHOULD_DEVBUILD=${{ !contains(github.event.head_commit.message, '--nobuild') }}
|
SHOULD_DEVBUILD=${{ !contains(github.event.head_commit.message, '--nobuild') }}
|
||||||
SHOULD_UPLOAD=$SHOULD_DEVBUILD
|
SHOULD_UPLOAD=$SHOULD_DEVBUILD
|
||||||
|
SHOULD_DEPLOY=$SHOULD_DEVBUILD
|
||||||
elif ${{ startsWith(github.ref, 'refs/tags/') }} ; then
|
elif ${{ startsWith(github.ref, 'refs/tags/') }} ; then
|
||||||
SHOULD_UPLOAD=true
|
SHOULD_UPLOAD=true
|
||||||
fi
|
fi
|
||||||
elif ${{ !!github.event.pull_request }} ; then
|
elif ${{ !!github.event.pull_request }} ; then
|
||||||
SHOULD_PRCOMMENT=${{ matrix.target == env.DEFAULT_TARGET }}
|
SHOULD_PRBUILD=${{ matrix.target == env.DEFAULT_TARGET }}
|
||||||
SHOULD_UPLOAD=true
|
SHOULD_UPLOAD=$SHOULD_PRBUILD
|
||||||
|
SHOULD_DEPLOY=$SHOULD_PRBUILD
|
||||||
else
|
else
|
||||||
echo "What?"
|
echo "What?"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "SHOULD_DEVBUILD=$SHOULD_DEVBUILD" >> $GITHUB_ENV
|
echo "SHOULD_DEVBUILD=$SHOULD_DEVBUILD" >> $GITHUB_ENV
|
||||||
echo "SHOULD_PRCOMMENT=$SHOULD_PRCOMMENT" >> $GITHUB_ENV
|
echo "SHOULD_PRBUILD=$SHOULD_PRBUILD" >> $GITHUB_ENV
|
||||||
echo "SHOULD_UPLOAD=$SHOULD_UPLOAD" >> $GITHUB_ENV
|
echo "SHOULD_UPLOAD=$SHOULD_UPLOAD" >> $GITHUB_ENV
|
||||||
|
echo "SHOULD_DEPLOY=$SHOULD_DEPLOY" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: "Build the firmware and apps"
|
- name: "Build the firmware and apps"
|
||||||
id: build-fw
|
id: build-fw
|
||||||
@@ -150,7 +153,7 @@ jobs:
|
|||||||
"${{ secrets.INDEXER_URL }}"/firmware/uploadfiles
|
"${{ secrets.INDEXER_URL }}"/firmware/uploadfiles
|
||||||
|
|
||||||
- name: "Force deploy website to refresh devbuilds"
|
- name: "Force deploy website to refresh devbuilds"
|
||||||
if: ${{ env.SHOULD_DEVBUILD == 'true' }}
|
if: ${{ env.SHOULD_DEPLOY == 'true' }}
|
||||||
uses: Codex-/return-dispatch@v2
|
uses: Codex-/return-dispatch@v2
|
||||||
id: force-deploy
|
id: force-deploy
|
||||||
with:
|
with:
|
||||||
@@ -163,7 +166,7 @@ jobs:
|
|||||||
workflow_job_steps_retry_seconds: 5
|
workflow_job_steps_retry_seconds: 5
|
||||||
|
|
||||||
- name: "Calculate DFU sizes"
|
- name: "Calculate DFU sizes"
|
||||||
if: ${{ env.SHOULD_PRCOMMENT == 'true' }}
|
if: ${{ env.SHOULD_PRBUILD == 'true' }}
|
||||||
run: |
|
run: |
|
||||||
curl -L "${{ secrets.INDEXER_URL }}"/firmware/development/f7/full_dfu -o dev.dfu
|
curl -L "${{ secrets.INDEXER_URL }}"/firmware/development/f7/full_dfu -o dev.dfu
|
||||||
dfu_size_new=$(du --apparent-size -B 1 artifacts/flipper-z-${TARGET}-full-*.dfu | cut -f1)
|
dfu_size_new=$(du --apparent-size -B 1 artifacts/flipper-z-${TARGET}-full-*.dfu | cut -f1)
|
||||||
@@ -186,7 +189,7 @@ jobs:
|
|||||||
echo "FLASH_USABLE=$FLASH_USABLE" >> $GITHUB_ENV
|
echo "FLASH_USABLE=$FLASH_USABLE" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: "Find previous comment"
|
- name: "Find previous comment"
|
||||||
if: ${{ env.SHOULD_PRCOMMENT == 'true' }}
|
if: ${{ env.SHOULD_PRBUILD == 'true' }}
|
||||||
uses: peter-evans/find-comment@v3
|
uses: peter-evans/find-comment@v3
|
||||||
id: find-comment
|
id: find-comment
|
||||||
with:
|
with:
|
||||||
@@ -194,22 +197,8 @@ jobs:
|
|||||||
comment-author: "github-actions[bot]"
|
comment-author: "github-actions[bot]"
|
||||||
body-includes: "Compiled ${{ matrix.target }} firmware for commit"
|
body-includes: "Compiled ${{ matrix.target }} firmware for commit"
|
||||||
|
|
||||||
- name: "Create or update comment"
|
|
||||||
if: ${{ env.SHOULD_PRCOMMENT == 'true' }}
|
|
||||||
uses: peter-evans/create-or-update-comment@v4
|
|
||||||
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}}`:**
|
|
||||||
- [☁️ Flipper Lab/App](https://lab.flipper.net/?url=${{secrets.INDEXER_URL}}/builds/firmware/${{steps.names.outputs.branch_name}}/flipper-z-${{steps.names.outputs.default_target}}-update-${{steps.names.outputs.suffix}}.tgz&channel=mntm-${{steps.names.outputs.branch_name}}&version=${{steps.names.outputs.commit_sha}})
|
|
||||||
- [📦 qFlipper Package](${{secrets.INDEXER_URL}}/builds/firmware/${{steps.names.outputs.branch_name}}/flipper-z-${{steps.names.outputs.default_target}}-update-${{steps.names.outputs.suffix}}.tgz)
|
|
||||||
- DFU Size: `${{ env.DFU_SIZE }}` (`${{ env.DFU_DIFF }}` from dev)
|
|
||||||
- Free Flash: `${{ env.FLASH_FREE }}` (`${{ env.FLASH_USABLE }}` usable)
|
|
||||||
edit-mode: replace
|
|
||||||
|
|
||||||
- name: "Wait for deploy (Run ID ${{ steps.force-deploy.outputs.run_id }})"
|
- name: "Wait for deploy (Run ID ${{ steps.force-deploy.outputs.run_id }})"
|
||||||
if: ${{ env.SHOULD_DEVBUILD == 'true' }}
|
if: ${{ env.SHOULD_DEPLOY == 'true' }}
|
||||||
uses: Codex-/await-remote-run@v1
|
uses: Codex-/await-remote-run@v1
|
||||||
with:
|
with:
|
||||||
token: ${{ github.token }}
|
token: ${{ github.token }}
|
||||||
@@ -219,6 +208,21 @@ jobs:
|
|||||||
run_timeout_seconds: 300
|
run_timeout_seconds: 300
|
||||||
poll_interval_ms: 5000
|
poll_interval_ms: 5000
|
||||||
|
|
||||||
|
- name: "Create or update comment"
|
||||||
|
if: ${{ env.SHOULD_PRBUILD == 'true' }}
|
||||||
|
uses: peter-evans/create-or-update-comment@v4
|
||||||
|
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}}`:**
|
||||||
|
- [🖥️ Web Updater](https://momentum-fw.dev/update?branch=${{steps.names.outputs.branch_name_urlencoded}})
|
||||||
|
- [☁️ Flipper Lab/App](https://lab.flipper.net/?url=${{secrets.INDEXER_URL}}/builds/firmware/${{steps.names.outputs.branch_name}}/flipper-z-${{steps.names.outputs.default_target}}-update-${{steps.names.outputs.suffix}}.tgz&channel=mntm-${{steps.names.outputs.branch_name}}&version=${{steps.names.outputs.commit_sha}})
|
||||||
|
- [📦 qFlipper Package](${{secrets.INDEXER_URL}}/builds/firmware/${{steps.names.outputs.branch_name}}/flipper-z-${{steps.names.outputs.default_target}}-update-${{steps.names.outputs.suffix}}.tgz)
|
||||||
|
- DFU Size: `${{ env.DFU_SIZE }}` (`${{ env.DFU_DIFF }}` from dev)
|
||||||
|
- Free Flash: `${{ env.FLASH_FREE }}` (`${{ env.FLASH_USABLE }}` usable)
|
||||||
|
edit-mode: replace
|
||||||
|
|
||||||
- name: "Send devbuild webhook"
|
- name: "Send devbuild webhook"
|
||||||
env:
|
env:
|
||||||
INDEXER_URL: ${{ secrets.INDEXER_URL }}
|
INDEXER_URL: ${{ secrets.INDEXER_URL }}
|
||||||
|
@@ -9,6 +9,7 @@ import re
|
|||||||
import shlex
|
import shlex
|
||||||
import ssl
|
import ssl
|
||||||
import string
|
import string
|
||||||
|
import urllib.parse
|
||||||
import urllib.request
|
import urllib.request
|
||||||
|
|
||||||
|
|
||||||
@@ -63,6 +64,7 @@ def get_details(event, args):
|
|||||||
ref = event["ref"]
|
ref = event["ref"]
|
||||||
data["commit_sha"] = data["commit_hash"][:8]
|
data["commit_sha"] = data["commit_hash"][:8]
|
||||||
data["branch_name"] = re.sub("refs/\w+/", "", ref)
|
data["branch_name"] = re.sub("refs/\w+/", "", ref)
|
||||||
|
data["branch_name_urlencoded"] = urllib.parse.quote_plus(data["branch_name"])
|
||||||
data["suffix"] = (
|
data["suffix"] = (
|
||||||
"mntm-"
|
"mntm-"
|
||||||
+ data["branch_name"].removeprefix("mntm-").replace("/", "-")
|
+ data["branch_name"].removeprefix("mntm-").replace("/", "-")
|
||||||
@@ -94,6 +96,9 @@ def add_envs(data, gh_env_file, gh_out_file, args):
|
|||||||
add_env("DIST_SUFFIX", data["suffix"], gh_env_file)
|
add_env("DIST_SUFFIX", data["suffix"], gh_env_file)
|
||||||
add_env("WORKFLOW_BRANCH_OR_TAG", data["branch_name"], gh_env_file)
|
add_env("WORKFLOW_BRANCH_OR_TAG", data["branch_name"], gh_env_file)
|
||||||
add_set_output_var("branch_name", data["branch_name"], gh_out_file)
|
add_set_output_var("branch_name", data["branch_name"], gh_out_file)
|
||||||
|
add_set_output_var(
|
||||||
|
"branch_name_urlencoded", data["branch_name_urlencoded"], gh_out_file
|
||||||
|
)
|
||||||
add_set_output_var("commit_sha", data["commit_sha"], gh_out_file)
|
add_set_output_var("commit_sha", data["commit_sha"], gh_out_file)
|
||||||
add_set_output_var("default_target", os.getenv("DEFAULT_TARGET"), gh_out_file)
|
add_set_output_var("default_target", os.getenv("DEFAULT_TARGET"), gh_out_file)
|
||||||
add_set_output_var("suffix", data["suffix"], gh_out_file)
|
add_set_output_var("suffix", data["suffix"], gh_out_file)
|
||||||
|
Reference in New Issue
Block a user