mirror of https://gitlab.com/fscarmen/test.git
parent
4afb2efef7
commit
f7d682ccc9
@ -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…
Reference in new issue