Update sync_warp-go.yml

dependabot/github_actions/goreleaser/goreleaser-action-4
fscarmen 3 years ago committed by GitHub
parent 4afb2efef7
commit f7d682ccc9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 98
      .github/workflows/sync_warp-go.yml

@ -1,68 +1,72 @@
name: Sync WireGuard-go
name: Sync warp-go latest version
on:
workflow_dispatch:
schedule:
- cron: '18 2 * * *'
# schedule:
# - cron: '3 2 * * *'
jobs:
WireGuard-go:
name: Sync WireGuard-go to the latest
runs-on: ubuntu-20.04
build:
name: Sync warp-go latest version
runs-on: ubuntu-latest
env:
WORKDIR: ./wireguard-go-source
USERNAME: ${{ secrets.GH_USERNAME }}
EMAIL: ${{ secrets.GH_EMAIL }}
REPO: ${{ secrets.GH_REPO }}
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Check the official latest version of WireGuard-go
- uses: actions/checkout@v3
- name: Update warp-go to latest version
run: |
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")
if [ "$LATEST" != "$NOW" ]; then
git clone https://git.zx2c4.com/wireguard-go ${{ env.WORKDIR }}
cp ./.github/wireguard-go-releaser.yml ${{ env.WORKDIR }}/.goreleaser.yml
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)
NOW1=$(echo $NOW | cut -d \. -f1)
NOW2=$(echo $NOW | cut -d \. -f2)
NOW3=$(echo $NOW | cut -d \. -f3)
LATEST1=$(echo $LATEST | cut -d \. -f1)
LATEST2=$(echo $LATEST | cut -d \. -f2)
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
echo "VERSION=$LATEST" >> $GITHUB_ENV
echo "DIST=${GITHUB_WORKSPACE}/warp-go" >> $GITHUB_ENV
fi
- name: Set up GoReleaser
uses: actions/setup-go@v2
if: ${{ env.VERSION != '' }}
with:
go-version: "1.18"
- name: Cross compile WireGuard-go
uses: goreleaser/goreleaser-action@v2
if: ${{ env.VERSION != '' }}
with:
distribution: goreleaser
workdir: ${{ env.WORKDIR }}
version: latest
args: release --rm-dist
- 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 "Wireguard-go V${{ env.VERSION }}, $(date "+%Y/%m/%d")"
git commit -m "Sync warp-go to V${{ env.VERSION }} by Github Actions, $(date "+%Y/%m/%d %H:%M:%S")"
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 }}/*

Loading…
Cancel
Save