From 9f08e5d29a044cb669b1637b4b8120e42b2e91ce Mon Sep 17 00:00:00 2001 From: fscarmen <62703343+fscarmen@users.noreply.github.com> Date: Thu, 23 Mar 2023 11:10:00 +0800 Subject: [PATCH] Update sync_warp-go.yml --- .github/workflows/sync_warp-go.yml | 86 ++++++++++++++++-------------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/.github/workflows/sync_warp-go.yml b/.github/workflows/sync_warp-go.yml index d7ae1be..91768a4 100644 --- a/.github/workflows/sync_warp-go.yml +++ b/.github/workflows/sync_warp-go.yml @@ -1,25 +1,32 @@ -name: Sync warp-go latest version +name: Sync WireGuard-go on: workflow_dispatch: # schedule: -# - cron: '3 2 * * *' +# - cron: '18 2 * * *' jobs: - build: - name: Sync warp-go latest version - runs-on: ubuntu-latest + WireGuard-go: + + name: Sync WireGuard-go to the latest + + runs-on: ubuntu-20.04 + env: + WORKDIR: ./wireguard-go-source USERNAME: ${{ secrets.GH_USERNAME }} EMAIL: ${{ secrets.GH_EMAIL }} - REPO: ${{ secrets.GH_REPO }} steps: - - uses: actions/checkout@v3 - - name: Update warp-go to latest version + - name: Checkout code + uses: actions/checkout@v3.3.0 + with: + fetch-depth: 0 + + - name: Check the official latest version of WireGuard-go run: | - NOW=$(wget -qO- https://raw.githubusercontent.com/${{ env.USERNAME }}/${{ env.REPO }}/main/warp-go.sh | grep 'latest=${latest' | cut -d \' -f2) - LATEST=$(wget -qO- -T1 -t1 https://gitlab.com/api/v4/projects/ProjectWARP%2Fwarp-go/releases | grep -oP '"tag_name":"v\K[^\"]+' | head -n 1) + NOW=$(wget -qO- "https://api.github.com/repos/${{ env.USERNAME }}/warp/releases" | grep "tag_name" | grep -i "wireguard-go" | head -n 1 | sed "s/.*_v\(.*\)\".*/\1/g") + LATEST=$(wget -qO- https://git.zx2c4.com/wireguard-go/ | grep '/wireguard-go/tag' | sed -n 1p | sed "s/.*>\([0-9.]\{1,\}\)<.*/\1/g") NOW1=$(echo $NOW | cut -d \. -f1) NOW2=$(echo $NOW | cut -d \. -f2) NOW3=$(echo $NOW | cut -d \. -f3) @@ -28,45 +35,42 @@ jobs: LATEST3=$(echo $LATEST | cut -d \. -f3) NOW_VERSION=$(( NOW1*1000000 + NOW2*1000 + NOW3 )) LATEST_VERSION=$(( LATEST1*1000000 + LATEST2*1000 + LATEST3 )) + if [ $LATEST_VERSION -gt $NOW_VERSION ]; then - PLATFORM=( "linux_386" - "linux_amd64" - "linux_amd64v2" - "linux_amd64v3" - "linux_amd64v4" - "linux_arm64" - "linux_386" - "linux_s390x" - ) - - SCRIPTS=( "warp-go.sh" - ) - - for i in "${PLATFORM[@]}"; do - wget -NP ${GITHUB_WORKSPACE}/warp-go/ https://gitlab.com/ProjectWARP/warp-go/-/releases/v"$LATEST"/downloads/warp-go_"$LATEST"_"$i".tar.gz - rm -f ${GITHUB_WORKSPACE}/warp-go/warp-go_"$NOW"_"$i".tar.gz - done - - for j in "${SCRIPTS[@]}"; do - sed -i "/判断 warp-go 的最新版本/s/$NOW/$LATEST/; /latest=\${/s/$NOW/$LATEST/" ${GITHUB_WORKSPACE}/$j - done - + git clone https://git.zx2c4.com/wireguard-go ${{ env.WORKDIR }} + cp ./.github/wireguard-go-releaser.yml ${{ env.WORKDIR }}/.goreleaser.yml echo "VERSION=$LATEST" >> $GITHUB_ENV - echo "DIST=${GITHUB_WORKSPACE}/warp-go" >> $GITHUB_ENV fi + + - name: Set up GoReleaser + uses: actions/setup-go@v3 + if: ${{ env.VERSION != '' }} + with: + go-version: "1.18" + + - name: Cross compile WireGuard-go + uses: goreleaser/goreleaser-action@v4 + if: ${{ env.VERSION != '' }} + with: + distribution: goreleaser + workdir: ${{ env.WORKDIR }} + version: latest + args: release --clean + + - name: Release binaries + uses: softprops/action-gh-release@v1 + if: ${{ env.VERSION != '' }} + with: + tag_name: WireGuard-go_v${{ env.VERSION }} + files: ${{ env.WORKDIR }}/dist/*.tar.gz - name: Upload to REPO if: ${{ env.VERSION != '' }} run: | + cp -f ${{ env.WORKDIR }}/dist/*.tar.gz ${GITHUB_WORKSPACE}/wireguard-go/ + rm -rf ${{ env.WORKDIR }} git config --global user.email "${{ env.EMAIL }}" git config --global user.name "${{ env.USERNAME }}" git add . - git commit -m "Sync warp-go to V${{ env.VERSION }} by Github Actions, $(date "+%Y/%m/%d %H:%M:%S")" + git commit -m "Wireguard-go V${{ env.VERSION }}, $(date "+%Y/%m/%d")" git push - - - name: Release binaries - uses: softprops/action-gh-release@v1 - if: ${{ env.VERSION != '' }} - with: - tag_name: warp-go_v${{ env.VERSION }} - files: ${{ env.DIST }}/*