Add update checker

This commit is contained in:
Xiaonan Shen 2020-04-15 04:01:07 -07:00
parent 6f9db25b43
commit 96351a72c0
No known key found for this signature in database
GPG Key ID: 211BF560D12417F5
4 changed files with 60 additions and 1 deletions

View File

@ -4,6 +4,8 @@ on:
push: push:
tags: tags:
- '*' - '*'
repository_dispatch:
types: update
env: env:
DOCKER_TAG: shenxn/protonmail-bridge DOCKER_TAG: shenxn/protonmail-bridge

22
.github/workflows/update-check.yaml vendored Normal file
View File

@ -0,0 +1,22 @@
name: update check
on:
push:
branches:
- update-check
schedule:
- cron: '0 0 * * *' # runs everyday at midnight
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
with:
ref: master
- name: Check Update
run: bash check-update.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PERSONAL_TOKEN: ${{ secrets.PERSONAL_TOKEN }}

View File

@ -1,4 +1,4 @@
FROM debian:buster-slim FROM ubuntu:latest
LABEL maintainer="Xiaonan Shen <s@sxn.dev>" LABEL maintainer="Xiaonan Shen <s@sxn.dev>"
EXPOSE 25/tcp EXPOSE 25/tcp

35
check-update.sh Normal file
View File

@ -0,0 +1,35 @@
#!/bin/bash
set -ex
source ./releaserc
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_RELEASE=$(echo $URL | sed -n "s/https:\/\/protonmail.com\/download\/protonmail-bridge_\([0-9.-]*\)_amd64.deb/\1/p")
if [[ RELEASE != CURR_RELEASE ]]; then
echo "New release found: ${CURR_RELEASE}"
# bump up to new release
sed -i "s/^RELEASE=.*$/RELEASE=${CURR_RELEASE}/" releaserc
# commit
git config --local user.email "actions@github.com"
git config --local user.name "Github Action"
git add releaserc
git commit -m "Release ${CURR_RELEASE}" --author="Xiaonan Shen <s@sxn.dev>"
git tag -a ${CURR_RELEASE} -m "Release ${CURR_RELEASE}"
# push
REMOTE_REPO="https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
git push "${REMOTE_REPO}" master
git push "${REMOTE_REPO}" master --tags
# trigger actions
curl -H "Accept: application/vnd.github.everest-preview+json" \
-H "Authorization: token ${PERSONAL_TOKEN}" \
--request POST \
--data '{"event_type": "update"}' \
https://api.github.com/repos/${GITHUB_REPOSITORY}/dispatches
fi