Skip to content

Update release.yml

Update release.yml #97

Workflow file for this run

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: |
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
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: |
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/${{env.VERSION}}/ZeroTierForKSU-arm64-${{ env.VERSION }}.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/${{env.VERSION}}/ZeroTierForKSU-arm-${{ env.VERSION }}.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=${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 "[email protected]"
git config --global user.name "github action"
MESSAGE=$(git log -1 --pretty=%B)
echo "commit MESSAGE: $MESSAGE"

Check failure on line 75 in .github/workflows/release.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/release.yml

Invalid workflow file

You have an error in your yaml syntax on line 75
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: |
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: |
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: |
cd ui-src
npm install
npm audit fix
npm run build
mv dist/* ../webroot/
- name: Generate module for arm64/arm
run: |
mv zerotier-one-arm64 zerotier-one
echo 'updateJson=https://raw.githubusercontent.com/powerAn2020/ZeroTierOneForKSU/main/update_arm64.json' >>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
bash build.sh ZeroTierForKSU-arm-${{ env.MODULE_VERSION }}.zip
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ZeroTierForKSU
path: |
./ZeroTierForKSU-arm64-${{ env.MODULE_VERSION }}.zip
./ZeroTierForKSU-arm-${{ env.MODULE_VERSION }}.zip
- name: Schedule Release
uses: softprops/action-gh-release@v2
if: github.event_name == 'schedule' && COMMIT == '1'
with:
body_path: changelog.md
tag_name: ${{ env.MODULE_VERSION }}
name: ZeroTierForKSU-${{ env.MODULE_VERSION }}
files: |
ZeroTierForKSU-arm64-${{ env.MODULE_VERSION }}.zip
ZeroTierForKSU-arm-${{ env.MODULE_VERSION }}.zip
- name: Manual Release
uses: softprops/action-gh-release@v2
if: github.event_name == 'workflow_dispatch'
with:
generate_release_notes: true
tag_name: ${{ env.MODULE_VERSION }}
name: ZeroTierForKSU-${{ env.MODULE_VERSION }}
files: |
ZeroTierForKSU-arm64-${{ env.MODULE_VERSION }}.zip
ZeroTierForKSU-arm-${{ env.MODULE_VERSION }}.zip
- name: Push changes
uses: ad-m/github-push-action@master
if: ${{ env.COMMIT == '1' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: main