mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
210 lines
7.3 KiB
YAML
210 lines
7.3 KiB
YAML
#
|
|
# Copyright (C) 2022 Ing <https://github.com/wjz304>
|
|
#
|
|
# This is free software, licensed under the MIT License.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
name: Auto Comment
|
|
on:
|
|
issues:
|
|
types: [opened, reopened]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@main
|
|
|
|
- name: Init Env
|
|
run: |
|
|
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
git config --global user.name "github-actions[bot]"
|
|
sudo timedatectl set-timezone "Asia/Shanghai"
|
|
|
|
- name: Check Issues
|
|
shell: python
|
|
run: |
|
|
# -*- coding: utf-8 -*-
|
|
import json, subprocess
|
|
def set_output(name, value):
|
|
subprocess.call(["echo '{}={}' >> $GITHUB_ENV".format(name, value)], shell=True)
|
|
|
|
issuetitle = ${{ toJSON(github.event.issue.title) }};
|
|
issuebody = ${{ toJSON(github.event.issue.body) }};
|
|
|
|
iscustom = 'false'
|
|
warinfo = 'false'
|
|
model = ''
|
|
try:
|
|
if issuetitle.lower().startswith('custom'):
|
|
json_object = json.loads(issuebody)
|
|
iscustom = 'true'
|
|
model = json_object.get('model', '')
|
|
except ValueError as e:
|
|
pass
|
|
|
|
if iscustom == 'false':
|
|
if issuebody.find('ENV') >= 0:
|
|
warinfo = 'true'
|
|
|
|
set_output("iscustom", iscustom)
|
|
set_output("warinfo", warinfo)
|
|
set_output("model", model)
|
|
|
|
- name: Update Comment Warinfo
|
|
if: env.warinfo == 'true'
|
|
uses: actions-cool/issues-helper@v3
|
|
with:
|
|
actions: "create-comment"
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
issue-number: ${{ github.event.issue.number }}
|
|
body: |
|
|
<img src="https://user-images.githubusercontent.com/5615843/235939097-6798da58-24fd-44cc-9970-c8d2f9609704.jpg" width="400">
|
|
|
|
请填写以下信息.
|
|
Please fill in the following information.
|
|
|
|
Install ENV: (You can find it in the boot interface.)
|
|
* DMI:
|
|
* CPU:
|
|
* NIC:
|
|
|
|
RR version: (You can find it in the update menu.)
|
|
* RR:
|
|
* addons:
|
|
* modules:
|
|
* lkms:
|
|
|
|
DSM:
|
|
* model:
|
|
* version:
|
|
|
|
Issue:
|
|
|
|
logs:
|
|
|
|
(请先看一下#173、#175、#226的内容)
|
|
(Plz review the content of #173, #175, #226 first)
|
|
...
|
|
|
|
... 如果你提供不了详细信息,那就等有缘人吧!
|
|
... If you can't provide detailed information, then wait for someone who is destined!
|
|
|
|
emoji: heart
|
|
|
|
- name: Update Comment Labels
|
|
if: env.iscustom == 'true'
|
|
uses: actions-cool/issues-helper@v3
|
|
with:
|
|
actions: 'add-labels'
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
issue-number: ${{ github.event.issue.number }}
|
|
labels: 'custom,${{ env.model }}'
|
|
|
|
- name: Update Comment Building
|
|
if: env.iscustom == 'true'
|
|
id: comment
|
|
uses: actions-cool/issues-helper@v3
|
|
with:
|
|
actions: 'create-comment'
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
issue-number: ${{ github.event.issue.number }}
|
|
body: |
|
|
Hi @${{ github.event.issue.user.login }}.
|
|
RR-${{ env.model }} is being build and package and will be sent to your email later..
|
|
> ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
----
|
|
emoji: heart
|
|
|
|
- name: Run Build
|
|
if: env.iscustom == 'true'
|
|
run: |
|
|
# 累了, 毁灭吧
|
|
|
|
REPO=${{ github.server_url }}/${{ github.repository }}
|
|
MODEL=${{ env.model }}
|
|
PRERELEASE="false"
|
|
|
|
TAG=""
|
|
if [ "${PRERELEASE}" = "true" ]; then
|
|
TAG="$(curl -skL --connect-timeout 10 "${REPO}/tags" | grep /refs/tags/.*\.zip | head -1 | sed -r 's/.*\/refs\/tags\/(.*)\.zip.*$/\1/')"
|
|
else
|
|
LATESTURL="$(curl -skL --connect-timeout 10 -w %{url_effective} -o /dev/null "${REPO}/releases/latest")"
|
|
TAG="${LATESTURL##*/}"
|
|
fi
|
|
[ "${TAG:0:1}" = "v" ] && TAG="${TAG:1}"
|
|
rm -f rr-${TAG}.img.zip
|
|
STATUS=$(curl -kL --connect-timeout 10 -w "%{http_code}" "${REPO}/releases/download/${TAG}/rr-${TAG}.img.zip" -o "rr-${TAG}.img.zip")
|
|
if [ $? -ne 0 -o ${STATUS:-0} -ne 200 ]; then
|
|
echo "Download failed"
|
|
exit 1
|
|
fi
|
|
|
|
unzip rr-${TAG}.img.zip -d "rr"
|
|
|
|
export TERM=xterm
|
|
|
|
sudo ./localbuild.sh init rr rr/rr.img
|
|
sudo ./localbuild.sh config ${MODEL}
|
|
sudo ./localbuild.sh pack rr/rr.img
|
|
|
|
ls rr -al
|
|
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img
|
|
|
|
UPLOAD="$(curl -k -F "file=@rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip" -F "token=${{ secrets.TT_TOKEN }}" -F "model=0" -X POST "https://tmp-cli.vx-cdn.com/app/upload_cli")"
|
|
if ! echo "${UPLOAD}" | grep -q "Download Page"; then
|
|
echo "Upload failed"
|
|
exit 1
|
|
fi
|
|
|
|
EMAIL=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/users/${{ github.event.issue.user.login }}" | jq -r '.email')
|
|
TTDLURL="$(echo "${UPLOAD}" | grep "Download Page" | head -1)"
|
|
echo "TAG=${TAG}" >> $GITHUB_ENV
|
|
echo "EMAIL=${EMAIL}" >> $GITHUB_ENV
|
|
echo "TTDLURL=${TTDLURL}" >> $GITHUB_ENV
|
|
|
|
- name: Send mail
|
|
if: env.iscustom == 'true' && success()
|
|
uses: dawidd6/action-send-mail@v3
|
|
with:
|
|
server_address: smtp-mail.outlook.com
|
|
server_port: 587
|
|
username: ${{ secrets.MAIL_USERNAME }}
|
|
password: ${{ secrets.MAIL_PASSWORD }}
|
|
subject: rr-${{ env.model }}-${{ env.TAG }}
|
|
to: ${{ env.EMAIL }}
|
|
from: ${{ secrets.MAIL_USERNAME }}
|
|
body: |
|
|
${{ env.TTDLURL }}
|
|
|
|
- name: Update Comment Success
|
|
if: env.iscustom == 'true' && success()
|
|
uses: actions-cool/issues-helper@v3
|
|
with:
|
|
actions: 'update-comment'
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
comment-id: ${{ steps.comment.outputs.comment-id }}
|
|
update-mode: replace
|
|
body: |
|
|
Hi @${{ github.event.issue.user.login }}.
|
|
RR-${{ env.model }} has been sent to your email.
|
|
> ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
----
|
|
emoji: hooray
|
|
|
|
- name: Update Comment Fail
|
|
if: env.iscustom == 'true' && failure()
|
|
uses: actions-cool/issues-helper@v3
|
|
with:
|
|
actions: 'update-comment'
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
comment-id: ${{ steps.comment.outputs.comment-id }}
|
|
update-mode: replace
|
|
body: |
|
|
Hi @${{ github.event.issue.user.login }}.
|
|
RR-${{ env.model }} failed to build and package, please try again.
|
|
> ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
----
|
|
emoji: confused |