Workflow with Matrix Strategy

This commit is contained in:
Ho3ein 2023-05-29 15:57:12 +03:30 committed by GitHub
parent 2c233dffa5
commit de571a2da4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,4 +1,5 @@
name: Release X-ui name: Release 3X-ui
on: on:
push: push:
tags: tags:
@ -6,85 +7,70 @@ on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
linuxamd64build: build:
name: build x-ui amd64 version strategy:
matrix:
platform: [amd64, arm64]
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3.5.2 - name: Checkout repository
- name: Set up Go uses: actions/checkout@v3.5.2
- name: Setup Go
uses: actions/setup-go@v4.0.1 uses: actions/setup-go@v4.0.1
with: with:
go-version: "stable" go-version: 'stable'
- name: build linux amd64 version
run: | - name: Install dependencies for arm64
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o xui-release -v main.go if: matrix.platform == 'arm64'
mkdir x-ui
cp xui-release x-ui/xui-release
cp x-ui.service x-ui/x-ui.service
cp x-ui.sh x-ui/x-ui.sh
cd x-ui
mv xui-release x-ui
mkdir bin
cd bin
wget https://github.com/mhsanaei/Xray-core/releases/latest/download/Xray-linux-64.zip
unzip Xray-linux-64.zip
rm -f Xray-linux-64.zip geoip.dat geosite.dat iran.dat
wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
wget https://github.com/bootmortis/iran-hosted-domains/releases/latest/download/iran.dat
mv xray xray-linux-amd64
cd ..
cd ..
- name: package
run: tar -zcvf x-ui-linux-amd64.tar.gz x-ui
- name: upload
uses: svenstaro/upload-release-action@2.6.0
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref }}
file: x-ui-linux-amd64.tar.gz
asset_name: x-ui-linux-amd64.tar.gz
prerelease: true
overwrite: true
linuxarm64build:
name: build x-ui arm64 version
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3.5.2
- name: Set up Go
uses: actions/setup-go@v4.0.1
with:
go-version: "stable"
- name: build linux arm64 version
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt install gcc-aarch64-linux-gnu sudo apt install gcc-aarch64-linux-gnu
CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc go build -o xui-release -v main.go
- name: Build x-ui
run: |
export CGO_ENABLED=1
export GOOS=linux
export GOARCH=${{ matrix.platform }}
if [ "${{ matrix.platform }}" == "arm64" ]; then
export CC=aarch64-linux-gnu-gcc
fi
go build -o xui-release -v main.go
mkdir x-ui mkdir x-ui
cp xui-release x-ui/xui-release cp xui-release x-ui/
cp x-ui.service x-ui/x-ui.service cp x-ui.service x-ui/
cp x-ui.sh x-ui/x-ui.sh cp x-ui.sh x-ui/
cd x-ui mv x-ui/xui-release x-ui/x-ui
mv xui-release x-ui mkdir x-ui/bin
mkdir bin cd x-ui/bin
cd bin
wget https://github.com/mhsanaei/xray-core/releases/latest/download/Xray-linux-arm64-v8a.zip # Download dependencies
unzip Xray-linux-arm64-v8a.zip if [ "${{ matrix.platform }}" == "amd64" ]; then
rm -f Xray-linux-arm64-v8a.zip geoip.dat geosite.dat iran.dat wget https://github.com/mhsanaei/Xray-core/releases/latest/download/Xray-linux-64.zip
unzip Xray-linux-64.zip
rm -f Xray-linux-64.zip
else
wget https://github.com/mhsanaei/Xray-core/releases/latest/download/Xray-linux-arm64-v8a.zip
unzip Xray-linux-arm64-v8a.zip
rm -f Xray-linux-arm64-v8a.zip
fi
rm -f geoip.dat geosite.dat iran.dat
wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
wget https://github.com/bootmortis/iran-hosted-domains/releases/latest/download/iran.dat wget https://github.com/bootmortis/iran-hosted-domains/releases/latest/download/iran.dat
mv xray xray-linux-arm64 mv xray xray-${{ matrix.platform }}
cd .. cd ../..
cd ..
- name: package - name: Package
run: tar -zcvf x-ui-linux-arm64.tar.gz x-ui run: tar -zcvf x-ui-${{ matrix.platform }}.tar.gz x-ui
- name: upload
- name: Upload
uses: svenstaro/upload-release-action@2.6.0 uses: svenstaro/upload-release-action@2.6.0
with: with:
repo_token: ${{ secrets.GITHUB_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref }} tag: ${{ github.ref }}
file: x-ui-linux-arm64.tar.gz file: x-ui-${{ matrix.platform }}.tar.gz
asset_name: x-ui-linux-arm64.tar.gz asset_name: x-ui-${{ matrix.platform }}.tar.gz
prerelease: true prerelease: true
overwrite: true overwrite: true