mirror of
https://github.com/shenxn/protonmail-bridge-docker.git
synced 2025-12-06 08:27:08 +00:00
Add update check for build
This commit is contained in:
parent
10fca68e03
commit
ed128ecb9d
6
.github/workflows/update-check.yaml
vendored
6
.github/workflows/update-check.yaml
vendored
@ -7,11 +7,11 @@ on:
|
||||
- dev
|
||||
paths:
|
||||
- .github/workflows/update-check.yaml
|
||||
- update-check.sh
|
||||
- update-check.py
|
||||
pull_request:
|
||||
paths:
|
||||
- .github/workflows/update-check.yaml
|
||||
- update-check.sh
|
||||
- update-check.py
|
||||
schedule:
|
||||
- cron: '0 0 * * *' # runs everyday at midnight
|
||||
|
||||
@ -24,4 +24,4 @@ jobs:
|
||||
with:
|
||||
token: ${{ secrets.PERSONAL_TOKEN }}
|
||||
- name: Check Update
|
||||
run: bash update-check.sh ${{ github.event_name == 'pull_request' }}
|
||||
run: python3 update-check.py ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
64
update-check.py
Normal file
64
update-check.py
Normal file
@ -0,0 +1,64 @@
|
||||
import sys
|
||||
import os
|
||||
import requests
|
||||
import json
|
||||
import re
|
||||
|
||||
is_pull_request = sys.argv[1] == "true"
|
||||
print(f"is_pull_request={is_pull_request}")
|
||||
|
||||
|
||||
def check_version(directory, new_version):
|
||||
print(f"Checking version for {directory}")
|
||||
|
||||
if not new_version:
|
||||
print("Failed to get new version. Exiting.")
|
||||
exit(1)
|
||||
|
||||
with open(f"{directory}/VERSION", "r") as f:
|
||||
old_version = f.read().rstrip()
|
||||
|
||||
print(f"Up-to-date version {new_version}")
|
||||
print(f"Current version: {old_version}")
|
||||
|
||||
if old_version != new_version:
|
||||
print(f"New release found: {new_version}")
|
||||
|
||||
# bump up to new release
|
||||
with open(f"{directory}/VERSION", "w") as f:
|
||||
f.write(new_version)
|
||||
# commit
|
||||
result = os.system(f"git config --local user.email 'actions@github.com' \
|
||||
&& git config --local user.name 'Github Action' \
|
||||
&& git add {directory}/VERSION \
|
||||
&& git commit -m 'Bump {directory} version to {new_version}'")
|
||||
if result != 0:
|
||||
print("Failed to commit the bump. Exiting")
|
||||
exit(1)
|
||||
if is_pull_request:
|
||||
print("Action triggered by pull request. Do not push.")
|
||||
else:
|
||||
result = os.system("git push")
|
||||
if result != 0:
|
||||
print("Failed to push. Exiting")
|
||||
exit(1)
|
||||
else:
|
||||
print(f"Already newest version {old_version}")
|
||||
|
||||
|
||||
# check deb version
|
||||
response = requests.get("https://protonmail.com/download/current_version_linux.json")
|
||||
content = json.loads(response.content)
|
||||
version = re.match(".*_([0-9.-]+)_amd64\.deb", content["DebFile"]).group(1)
|
||||
check_version("deb", version)
|
||||
|
||||
|
||||
# check build version
|
||||
response = requests.get(
|
||||
"https://api.github.com/repos/ProtonMail/proton-bridge/tags",
|
||||
headers={"Accept": "application/vnd.github.v3+json"},
|
||||
)
|
||||
tags = json.loads(response.content)
|
||||
version_re = re.compile("v(\d+)\.(\d+)\.(\d+)")
|
||||
releases = [tag["name"] for tag in tags if version_re.match(tag["name"])]
|
||||
check_version("build", releases[0])
|
||||
@ -1,47 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
IS_PULL_REQUEST=$1
|
||||
|
||||
|
||||
check_version() {
|
||||
DIR=$1
|
||||
CURR_VERSION=$2
|
||||
|
||||
echo "Checking version for ${DIR}"
|
||||
|
||||
VERSION=`cat ${DIR}/VERSION`
|
||||
|
||||
if [[ -z $CURR_VERSION ]]; then
|
||||
echo "Failed to get new version. Existing."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $VERSION != $CURR_VERSION ]]; then
|
||||
echo "New release found: ${CURR_VERSION}"
|
||||
|
||||
if [[ $IS_PULL_REQUEST == "true" ]]; then
|
||||
echo "Action triggered by pull request. Do not bump version."
|
||||
else
|
||||
# bump up to new release
|
||||
echo ${CURR_VERSION} > ${DIR}/VERSION
|
||||
|
||||
# commit
|
||||
git config --local user.email "actions@github.com"
|
||||
git config --local user.name "Github Action"
|
||||
git add ${DIR}/VERSION
|
||||
git commit -m "Bump ${DIR} version to ${CURR_VERSION}" --author="Xiaonan Shen <s@sxn.dev>"
|
||||
git push
|
||||
fi
|
||||
else
|
||||
echo "Already newest version ${VERSION}"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
|
||||
JSON_CONTENT=$(curl -q https://protonmail.com/download/current_version_linux.json)
|
||||
URL=$(echo ${JSON_CONTENT} | sed -n "s/^.*\"DebFile\":\"\([a-z0-9:/._-]*\)\".*$/\1/p")
|
||||
CURR_VERSION=$(echo $URL | sed -n "s/https:\/\/protonmail.com\/.*_\([0-9.-]*\)_.*.deb/\1/p")
|
||||
check_version deb $CURR_VERSION
|
||||
Loading…
Reference in New Issue
Block a user