diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml new file mode 100644 index 0000000..30c96e4 --- /dev/null +++ b/.github/workflows/debug.yml @@ -0,0 +1,140 @@ +name: release +# description: + +on: + workflow_dispatch: + schedule: + - cron: '40 7 * * 2' + # push: + +permissions: + contents: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: main + fetch-depth: 0 + + - name: Initialization environment + env: + DEBIAN_FRONTEND: noninteractive + run: | + set -x + sudo apt install -y xz-utils make git wget zip + echo "${{ github.action_path }}" + latest_version=$(wget --no-check-certificate -qO- "https://api.github.com/repos/stunnel/static-curl/releases" | grep "tag_name" | grep -oE "[0-9.]*" | head -1) + module_latest_version=$(wget --no-check-certificate -qO- "https://api.github.com/repos/powerAn2020/ZeroTierOneForKSU/releases" | grep "tag_name" | grep -oE "[0-9.]*" | head -1) + zerotier_latest_version=$(wget --no-check-certificate -qO- "https://api.github.com/repos/zerotier/ZeroTierOne/releases" | grep "tag_name" | grep -oE "[0-9.]*" | head -1) + zerotier_version=$(cat zerotier_version) + echo "${zerotier_version}=${zerotier_latest_version}" + if [ "$zerotier_latest_version" = "$zerotier_version" -a "${{github.event_name }}" = "schedule" ]; then + echo "COMMIT=0" >> $GITHUB_ENV + exit 0 + fi + echo ${zerotier_latest_version}>zerotier_version + echo "VERSION=$zerotier_latest_version" >> $GITHUB_ENV + download_link="https://github.com/stunnel/static-curl/releases/download/${latest_version}/curl-linux-aarch64-musl-${latest_version}.tar.xz" + echo ${download_link} + wget -O curl.tar.xz ${download_link} + wget -O curl32.tar.xz https://github.com/stunnel/static-curl/releases/download/${latest_version}/curl-linux-armv7-musl-${latest_version}.tar.xz + tar -xJf curl.tar.xz -C $PWD/bin curl + tar -xJf curl32.tar.xz curl + wget -O $PWD/bin/cacert.pem https://curl.se/ca/cacert.pem + mkdir $PWD/toolchain + wget -O arm64.tar.xz "https://dl.armbian.com/_toolchain/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz" + wget -O arm.tar.xz "https://dl.armbian.com/_toolchain/gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf.tar.xz" + xz -d arm64.tar.xz + xz -d arm.tar.xz + tar -xvf arm64.tar -C $PWD/toolchain + tar -xvf arm.tar -C $PWD/toolchain + rm -f arm64.tar arm.tar curl.tar.xz curl32.tar.xz + + - name: Update versionCode + run: | + set -x + module_version=$(grep -w 'version' module.prop |awk -F'=' '{print $2}') + module_versionCode=$(grep -w 'versionCode' module.prop |awk -F'=' '{print $2}') + zerotier_version=$(cat zerotier_version) + # if [[ "${{ env.VERSION }}" != "${zerotier_version}" || "${{ github.event_name }}" == "workflow_dispatch" ]]; then + # echo "Scheduled event triggered this workflow" + versionCode=$(expr 10000 + $(git rev-list --count HEAD) + 200) + echo "MODULE_VERSION=$versionCode" >> $GITHUB_ENV + echo '{"version":"${{ env.VERSION }}","versionCode":'${versionCode}',"zipUrl":"https://github.com/powerAn2020/ZeroTierOneForKSU/releases/download/'${versionCode}'/ZeroTierForKSU-arm64-'${versionCode}'.zip","changelog":"https://raw.githubusercontent.com/powerAn2020/ZeroTierOneForKSU/main/changelog.md"}' >update_arm64.json + echo '{"version":"${{ env.VERSION }}","versionCode":'${versionCode}',"zipUrl":"https://github.com/powerAn2020/ZeroTierOneForKSU/releases/download/'${versionCode}'/ZeroTierForKSU-arm-'${versionCode}'.zip","changelog":"https://raw.githubusercontent.com/powerAn2020/ZeroTierOneForKSU/main/changelog.md"}' >update_arm.json + echo 'id=ZeroTierForKSU' >module.prop + echo 'name=ZeroTier For KernelSU' >>module.prop + echo "version=${{ env.VERSION }}(${versionCode})" >>module.prop + echo "versionCode=${versionCode}" >>module.prop + echo 'author=powerAn2020' >>module.prop + echo 'description=ZeroTier(${{ env.VERSION }}) with UI interface' >>module.prop + git config --global user.email "action@example.com" + git config --global user.name "github action" + MESSAGE=$(git log -1 --pretty=%B) + echo "commit MESSAGE: $MESSAGE" + echo '## Module Changelog' > changelog.md + echo $MESSAGE >> changelog.md + wget -O RELEASE-NOTES.md https://github.com/zerotier/ZeroTierOne/raw/dev/RELEASE-NOTES.md + release_notes_line=$(grep -nPo '\d{4}-\d{2}-\d{2} -- Version [\d.]+' RELEASE-NOTES.md|head -2|awk -F ':' '{print $1}'|awk BEGIN{RS=EOF}'{gsub(/\n/," ");print}'|awk '{printf("start=%s; end=%s;",$1,$2)}') + eval $release_notes_line + end=$(expr ${end} - 1) + echo " ===================" >>changelog.md + echo "## Zerotier Changelog" >>changelog.md + sed -n "${start},${end}p" RELEASE-NOTES.md >>changelog.md + rm RELEASE-NOTES.md + if [[ "${{ env.VERSION }}" != "${zerotier_version}" ]];then + echo "${{ env.VERSION }}" > zerotier_version + git add zerotier_version + fi + git add module.prop update_arm64.json update_arm.json changelog.md zerotier_version + git commit -m "update config" + echo "COMMIT=1" >> $GITHUB_ENV + # else + # echo "no need commit" + # exit 0 + # fi + + - name: Build Zerotier for arm64 + run: | + set -x + export PATH="$PWD/toolchain/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/:${PATH}" + git clone https:///github.com/zerotier/ZeroTierOne.git --depth=1 -b ${{ env.VERSION }} + cp -rf ZeroTierOne ZeroTierOne_ARM + cd ZeroTierOne + make -j $(nproc) ZT_STATIC=1 ZT_DEBUG=0 ZT_SSO_SUPPORTED=0 CC=aarch64-none-linux-gnu-gcc CXX=aarch64-none-linux-gnu-g++ LDFLAGS="-s" + cp -rf zerotier-one ../zerotier-one-arm64 + + - name: Build Zerotier for arm + run: | + set -x + export PATH="$PWD/toolchain/gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf/bin/:${PATH}" + cd ZeroTierOne_ARM + make -j $(nproc) ZT_STATIC=1 ZT_DEBUG=0 CC=arm-none-linux-gnueabihf-gcc CXX=arm-none-linux-gnueabihf-g++ LDFLAGS="-s" + cp -rf zerotier-one ../zerotier-one-arm + + - name: Build UI + run: | + set -x + cd ui-src + npm install + npm audit fix + npm run build + mv dist/* ../webroot/ + + - name: Generate module for arm64/arm + run: | + set -x + mv zerotier-one-arm64 zerotier-one + echo 'updateJson=https://raw.githubusercontent.com/powerAn2020/ZeroTierOneForKSU/main/update_arm64.json' >>module.prop + echo 'arch=arm64' >>module.prop + ls -la + bash build.sh ZeroTierForKSU-arm64-${{ env.MODULE_VERSION }}.zip + mv -f zerotier-one-arm zerotier-one + mv -f curl bin/curl + sed -i "s/update_arm64/update_arm/g" module.prop + sed -i "s/arm64/arm/g" module.prop + bash build.sh ZeroTierForKSU-arm-${{ env.MODULE_VERSION }}.zip \ No newline at end of file