|
|
|
|
@ -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 }}/* |
|
|
|
|
|