name: Sync CloudFlare Client on: workflow_dispatch: schedule: - cron: '18 2 * * *' jobs: WireGuard-go: name: Sync Client to the latest runs-on: ubuntu-20.04 env: USERNAME: ${{ secrets.GH_USERNAME }} EMAIL: ${{ secrets.GH_EMAIL }} steps: - name: Checkout code uses: actions/checkout@v3.3.0 with: fetch-depth: 0 - name: Check the official latest version of Client run: | NOW=$(wget -qO- "https://api.github.com/repos/${{ env.USERNAME }}/warp/releases" | grep "tag_name" | grep "CloudFlare" | head -n 1 | sed "s/.*_v\(.\{1,\}\)\".*/\1/g") LATEST=$(wget -qO- "https://pkg.cloudflareclient.com/packages/cloudflare-warp" | grep "release-row" | awk -F '' {'print $1'} | awk -F '' {'print $2'}) Operating_System=("CentOS 8" "Debian Bullseye" "Debian Buster" "Debian Stretch" "Ubuntu Jammy" "Ubuntu Focal" "Ubuntu Bionic" "Ubuntu Xenial") System_Rename=("CentOS_8.rpm" "Debian_11.deb" "Debian_10.deb" "Debian_9.deb" "Ubuntu_22.04.deb" "Ubuntu_20.04.deb" "Ubuntu_18.04.deb" "Ubuntu_16.04.deb") if [ "$LATEST" != "$NOW" ]; then [ ! -d ${GITHUB_WORKSPACE}/Client ] && mkdir -p ${GITHUB_WORKSPACE}/Client for ((i=0; i<${#Operating_System[@]}; i++)); do File_Path=$(wget -qO- https://pkg.cloudflareclient.com/packages/cloudflare-warp | grep 'release-row' | awk -F "${Operating_System[i]}" {'print $2'} | awk -F 'Download' {'print $1'} | awk -F \" {'print $2'}) Download_URL="https://pkg.cloudflareclient.com$File_Path" wget -O ${GITHUB_WORKSPACE}/Client/Client_${System_Rename[i]} $Download_URL done echo "VERSION=$LATEST" >> $GITHUB_ENV echo "DIST=${GITHUB_WORKSPACE}/Client" >> $GITHUB_ENV echo "DATE=$(date "+%Y/%m/%d %H:%M:%S")" >> $GITHUB_ENV fi - name: Upload to REPO uses: stefanzweifel/git-auto-commit-action@v4.16.0 if: ${{ env.VERSION != '' }} with: commit_message: Sync WGCF to V${{ env.VERSION }} by Github Actions, ${{ env.DATE }} - name: Release binaries uses: softprops/action-gh-release@v1 if: ${{ env.VERSION != '' }} with: tag_name: CloudFlare_Client_v${{ env.VERSION }} files: | !${{ env.DIST }}/README.md ${{ env.DIST }}/*