Files
zaprett/.github/workflows/workflow.yml
2025-10-28 22:21:24 +03:00

188 lines
7.4 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Build module
on:
workflow_dispatch:
inputs:
tag:
description: "Tag for the release (x.x.x)"
required: true
type: string
version:
description: "Module version (x.x)"
required: true
type: string
version_code:
description: "Module version code (xx)"
required: true
type: string
release_name:
description: "Release Name"
required: true
type: string
release_changes:
description: "Release Changes"
required: true
type: string
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Make build dirs
run: mkdir -p zaprett/system/bin zaprett-hosts/system/bin zaprett-tv/system/bin zaprett/system/etc/zaprett/lists zapret-latest out lists zapret-hosts/system/etc/zaprett/lists zapret-tv/system/etc/zaprett/lists
- name: Download latest zapret binaries
run: |
LATEST_RELEASE=$(curl -s https://api.github.com/repos/bol-van/zapret/releases/latest)
DOWNLOAD_URL=$(echo "$LATEST_RELEASE" | grep -o 'browser_download_url.*zapret-v.*\.zip"' | cut -d'"' -f3)
wget $DOWNLOAD_URL -O zapret-latest.zip
- name: Unzip zapret binaries
run: |
unzip -o zapret-latest.zip
ZAPRET_DIR=$(find . -maxdepth 1 -type d -name 'zapret-v*' | head -n 1)
if [ "$(ls -A "$ZAPRET_DIR")" ]; then
mv "$ZAPRET_DIR"/* zapret-latest/
else
echo "Warning: $ZAPRET_DIR is empty"
fi
rm -rf "${ZAPRET_DIR}"
rm zapret-latest.zip
- name: Copy files to dirs
run: |
#copy nfqws and zaprett
cp zapret-latest/binaries/android-arm/nfqws zaprett/system/bin/nfqws_arm32
cp zapret-latest/binaries/android-arm64/nfqws zaprett/system/bin/nfqws_arm64
cp zapret-latest/binaries/android-x86/nfqws zaprett/system/bin/nfqws_x86
cp zapret-latest/binaries/android-x86_64/nfqws zaprett/system/bin/nfqws_x86_64
cp zapret-latest/binaries/linux-mips/nfqws zaprett/system/bin/nfqws_mips
cp zapret-latest/binaries/linux-mipsel/nfqws zaprett/system/bin/nfqws_mipsel
cp -a src-module/* zaprett/
#copy all files to another distributions
cp -r zaprett/* zaprett-hosts/
cp -r zaprett/* zaprett-tv/
- name: Download and copy actual lists
run: |
wget https://raw.githubusercontent.com/CherretGit/zaprett-repo/refs/heads/main/lists/include/list-youtube.txt -O lists/list-youtube.txt
wget https://raw.githubusercontent.com/CherretGit/zaprett-repo/refs/heads/main/lists/include/list-discord.txt -O lists/list-discord.txt
cp lists/list-youtube.txt zaprett/system/etc/zaprett/lists/
cp lists/list-youtube.txt zaprett-hosts/system/etc/zaprett/lists/
cp lists/list-youtube.txt zaprett-tv/system/etc/zaprett/lists/
cp lists/list-discord.txt zaprett/system/etc/zaprett/lists/
cp lists/list-discord.txt zaprett-hosts/system/etc/zaprett/lists/
cp hosts/hosts zaprett-hosts/system/etc
- name: Create module.prop
run: |
cat > zaprett/module.prop <<EOF
id=zaprett
name=zaprett
version=${{ inputs.version }}
versionCode=${{ inputs.version_code }}
author=egor-white, Cherret
description=Ускорение CDN серверов Google. ТГК: https://t.me/zaprett_module
updateJson=https://raw.githubusercontent.com/egor-white/zaprett/refs/heads/main/update.json
EOF
cat > zaprett-hosts/module.prop <<EOF
id=zaprett
name=zaprett-hosts
version=${{ inputs.version }}
versionCode=${{ inputs.version_code }}
author=egor-white, Cherret
description=Ускорение CDN серверов Google. ТГК: https://t.me/zaprett_module
updateJson=https://raw.githubusercontent.com/egor-white/zaprett/refs/heads/main/update-hosts.json
EOF
cat > zaprett-tv/module.prop <<EOF
id=zaprett
name=zaprett-tv
version=${{ inputs.version }}
versionCode=${{ inputs.version_code }}
author=egor-white, Cherret
description=Ускорение CDN серверов Google. ТГК: https://t.me/zaprett_module
updateJson=https://raw.githubusercontent.com/egor-white/zaprett/refs/heads/main/update-tv.json
EOF
- name: Tree files
run: |
tree zaprett/ zaprett-hosts/ zaprett-tv/
- name: Create archives
run: |
cd zaprett && zip -r ../zaprett.zip ./* && cd ..
cd zaprett-hosts && zip -r ../zaprett-hosts.zip ./* && cd ..
cd zaprett-tv && zip -r ../zaprett-tv.zip ./* && cd ..
mv zaprett.zip out/
mv zaprett-hosts.zip out/
mv zaprett-tv.zip out/
- name: Create release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ inputs.tag }}
name: ${{ inputs.release_name }}
body: ${{ inputs.release_changes }}
files: out/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Update changelog
run: echo "${{ inputs.release_changes}}" > changelog.md
- name: Update update.json
run: |
cat > update.json <<EOF
{
"version": "${{ inputs.version }}",
"versionCode": ${{ inputs.version_code }},
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.tag }}/zaprett.zip",
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/refs/heads/main/changelog.md"
}
EOF
cat > update_hosts.json <<EOF
{
"version": "${{ inputs.version }}",
"versionCode": ${{ inputs.version_code }},
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.tag }}/zaprett-hosts.zip",
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/refs/heads/main/changelog.md"
}
EOF
cat > update_tv.json <<EOF
{
"version": "${{ inputs.version }}",
"versionCode": ${{ inputs.version_code }},
"zipUrl": "https://github.com/${{ github.repository }}/releases/download/${{ inputs.tag }}/zaprett-tv.zip",
"changelog": "https://raw.githubusercontent.com/${{ github.repository }}/refs/heads/main/changelog.md"
}
EOF
- name: Commit jsons and changelog
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "Update update's.json and changelog"
file_pattern: "update.json update_hosts.json update_tv.json changelog.md"
- name: Send bot post
env:
MESSAGE_TEXT: |
🔄 <b>Обновление модуля</b> ${{ inputs.version }}
📋 Изменения: ${{ inputs.release_changes }}
⬇️ <a href='https://github.com/egor-white/zaprett/releases/tag/${{ inputs.tag }}'>Скачать</a>
@zaprett_module <a href='mailru.pro'>[web]</a>
run: |
curl -X POST "https://api.telegram.org/bot${{ secrets.BOT_TOKEN }}/sendMessage" \
-d chat_id=-1002531270265 \
-d parse_mode=HTML \
-d disable_web_page_preview=true \
--data-urlencode "text=$MESSAGE_TEXT"