diff --git a/mihomerun.yml b/mihomerun.yml new file mode 100644 index 0000000..293a749 --- /dev/null +++ b/mihomerun.yml @@ -0,0 +1,105 @@ +#================================================= +# https://github.com/wukongdaily/RunFilesBuilder +# Description: Build RunFiles using GitHub Actions +# Lisence: MIT +# Author: wukongdaily +# Blog: wkdaily.cpolar.top +#================================================= + +name: Make MiHomo run files for 23.05 + +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Fetch latest release tag from mihomo + id: fetch_latest_tag + run: | + latest_tag=$(curl -s https://api.github.com/repos/morytyann/OpenWrt-mihomo/releases/latest | jq -r '.tag_name') + echo "LATEST_TAG=$latest_tag" >> $GITHUB_ENV + # https://github.com/morytyann/OpenWrt-mihomo/releases/download/v1.17.1/mihomo_aarch64_cortex-a53-openwrt-24.10.tar.gz + + - name: Clone makeself repository + run: git clone https://github.com/megastep/makeself.git + + - name: Download latest mihomo files + run: | + curl -LO $(curl -s https://api.github.com/repos/morytyann/OpenWrt-mihomo/releases/latest | grep -oP '"browser_download_url":\s*".*mihomo_aarch64_cortex-a53-openwrt-24.10.tar.gz"' | cut -d '"' -f 4) + curl -LO $(curl -s https://api.github.com/repos/morytyann/OpenWrt-mihomo/releases/latest | grep -oP '"browser_download_url":\s*".*mihomo_x86_64-openwrt-24.10.tar.gz"' | cut -d '"' -f 4) + tar --one-top-level=mihomo_aarch64_cortex-a53-openwrt-24.10 -xvzf mihomo_aarch64_cortex-a53-openwrt-24.10.tar.gz + tar --one-top-level=mihomo_x86_64-openwrt-24.10 -xvzf mihomo_x86_64-openwrt-24.10.tar.gz + + - name: Organize files for aarch64_cortex-a53&x86_64 + run: | + mkdir mihomo_x86_64 mihomo_aarch64_cortex-a53 + cp mihomo_x86_64-openwrt-24.10/*.ipk mihomo_x86_64/ + cp mihomo_aarch64_cortex-a53-openwrt-24.10/*.ipk mihomo_aarch64_cortex-a53/ + + + - name: Create install.sh scripts + run: | + cat < mihomo_x86_64/install.sh + #!/bin/sh + opkg update + if [ $? -ne 0 ]; then + echo "update failed。" + exit 1 + fi + opkg install *.ipk + EOF + chmod +x mihomo_x86_64/install.sh + cp mihomo_x86_64/install.sh mihomo_aarch64_cortex-a53/install.sh + + + - name: Move mihomo directories to makeself + run: | + mv mihomo_x86_64 makeself/ + mv mihomo_aarch64_cortex-a53 makeself/ + + - name: Create self-extracting packages + run: | + cd makeself + ./makeself.sh mihomo_x86_64/ mihomo_${{ env.LATEST_TAG }}_x86_64.run "by github action" ./install.sh + ./makeself.sh mihomo_aarch64_cortex-a53/ mihomo_${{ env.LATEST_TAG }}_aarch64_cortex-a53.run "by github action" ./install.sh + + + - name: Check file sizes + run: | + ls -lh makeself/mihomo_*.run + + - name: Fetch latest release details + id: fetch_release_details + run: | + extra_content="![Github](https://img.shields.io/badge/mihomo.run-123456?logo=github&logoColor=fff&labelColor=yellow&style=for-the-badge) [![Github](https://img.shields.io/badge/国内加速站下载-FC7C0D?logo=github&logoColor=fff&labelColor=000&style=for-the-badge)](https://wkdaily.cpolar.top/archives/1) ![GitHub Downloads (all assets, specific tag)](https://img.shields.io/github/downloads/wukongdaily/RunFilesBuilder/${{ env.LATEST_TAG }}/total?style=for-the-badge&labelColor=black&color=%2325c2a0)" + sed -i "1i$extra_content" "${{ github.workspace }}/info.md" + + - name: Print release notes + run: | + cat ${{ github.workspace }}/info.md + + - name: Generate new tag & release + uses: softprops/action-gh-release@v2.1.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ env.LATEST_TAG }} + target_commitish: ${{ github.ref_name }} + prerelease: false + body_path: ${{ github.workspace }}/info.md + + - name: Upload run files as release assets + uses: softprops/action-gh-release@v2.1.0 + with: + tag_name: ${{ env.LATEST_TAG }} + name: "mihomo-${{ env.LATEST_TAG }}" + files: makeself/mihomo_*.run + token: ${{ secrets.GITHUB_TOKEN }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file