Refactor release script to be more modular

This commit is contained in:
Willy-JL
2023-03-29 14:04:43 +01:00
parent 6e903cd40c
commit f6679cc8d8
6 changed files with 75 additions and 27 deletions

18
.github/workflow_data/package.sh vendored Normal file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
export ARTIFACT_DIR="${VERSION_TAG}"
export ARTIFACT_TGZ="${VERSION_TAG}.tgz"
export ARTIFACT_ZIP="${VERSION_TAG}.zip"
cd dist/${DEFAULT_TARGET}-*
mv ${DEFAULT_TARGET}-update-* ${ARTIFACT_DIR}
tar --format=ustar -czvf ../../${ARTIFACT_TGZ} ${ARTIFACT_DIR}
cd ${ARTIFACT_DIR}
7z a ../../../${ARTIFACT_ZIP} .
cd ../../..
python -m pip install pyncclient
export ARTIFACT_WEB="$(NC_FILE=${ARTIFACT_TGZ} NC_PATH=XFW-Updater python .github/workflow_data/webupdater.py)"
echo "ARTIFACT_TGZ=${ARTIFACT_TGZ}" >> $GITHUB_ENV
echo "ARTIFACT_WEB=${ARTIFACT_WEB}" >> $GITHUB_ENV
echo "ARTIFACT_ZIP=${ARTIFACT_ZIP}" >> $GITHUB_ENV

View File

@@ -1,15 +1,15 @@
## ⬇️ Download
>### [🖥️ Web Updater (chrome)](https://lab.flipper.net/?url={webupdater_url}&channel=XFW-Updater&version={release_tag}) [recommended]
>### [🖥️ Web Updater (chrome)](https://lab.flipper.net/?url={ARTIFACT_WEB}&channel=XFW-Updater&version={VERSION_TAG}) [recommended]
>### [🐬 qFlipper Package (.tgz)](https://github.com/ClaraCrazy/Flipper-Xtreme/releases/download/{release_tag}/{release_tag}.tgz)
>### [🐬 qFlipper Package (.tgz)](https://github.com/ClaraCrazy/Flipper-Xtreme/releases/download/{VERSION_TAG}/{ARTIFACT_TGZ})
>### [📦 Zipped Archive (.zip)](https://github.com/ClaraCrazy/Flipper-Xtreme/releases/download/{release_tag}/{release_tag}.zip)
>### [📦 Zipped Archive (.zip)](https://github.com/ClaraCrazy/Flipper-Xtreme/releases/download/{VERSION_TAG}/{ARTIFACT_ZIP})
**Remember to delete your `apps` folders before updating!**\
**Check the [install guide](https://github.com/ClaraCrazy/Flipper-Xtreme#install) if you're not sure, or [join our Discord](https://discord.gg/flipper-xtreme) if you have questions or encounter issues!**
## 🚀 Changelog
{changelog}
{CHANGELOG}
## ❤️ Support
If you like what you're seeing, **please consider donating to us**. We won't ever put this behind a paywall, but we'd still appreciate a few bucks!

19
.github/workflow_data/release.py vendored Normal file
View File

@@ -0,0 +1,19 @@
#!/usr/bin/env python
import json
import os
if __name__ == "__main__":
notes_path = '.github/workflow_data/release.md'
with open(os.environ['GITHUB_EVENT_PATH']) as f:
changelog = json.load(f.read())['pull_request']['body']
with open(notes_path, "r") as f:
template = f.read()
notes = template.format(
ARTIFACT_TGZ=os.environ['ARTIFACT_TGZ'],
ARTIFACT_WEB=os.environ['ARTIFACT_WEB'],
ARTIFACT_ZIP=os.environ['ARTIFACT_ZIP'],
VERSION_TAG=os.environ['VERSION_TAG'],
CHANGELOG=changelog
)
with open(notes_path, "w") as f:
f.write(notes)

4
.github/workflow_data/version.sh vendored Normal file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
export VERSION_TAG="$(grep -o "DIST_SUFFIX = .*" fbt_options.py | cut -d'"' -f2)"
echo "VERSION_TAG=${VERSION_TAG}" >> $GITHUB_ENV

12
.github/workflow_data/webupdater.py vendored Normal file
View File

@@ -0,0 +1,12 @@
import nextcloud_client
import os
if __name__ == "__main__":
client = nextcloud_client.Client(os.environ["NC_HOST"])
client.login(os.environ["NC_USER"], os.environ["NC_PASS"])
file = os.environ["NC_FILE"]
path = os.environ["NC_PATH"] + file
client.put_file(path, file)
share_link = client.share_file_with_link(path).get_link()
download_link = share_link.rstrip("/") + "/download/" + file
print(download_link, end="")