name: Release 3X-ui on: push: tags: - "*" workflow_dispatch: jobs: build: strategy: matrix: platform: [amd64, arm64] runs-on: ubuntu-20.04 steps: - name: Checkout repository uses: actions/checkout@v3.5.3 - name: Setup Go uses: actions/setup-go@v4.0.1 with: go-version: 'stable' - name: Install dependencies for arm64 if: matrix.platform == 'arm64' run: | sudo apt-get update sudo apt install gcc-aarch64-linux-gnu - 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 cp xui-release x-ui/ cp x-ui.service x-ui/ cp x-ui.sh x-ui/ mv x-ui/xui-release x-ui/x-ui mkdir x-ui/bin cd x-ui/bin # Download dependencies if [ "${{ matrix.platform }}" == "amd64" ]; then wget https://github.com/XTLS/Xray-core/releases/download/v1.8.1/Xray-linux-64.zip unzip Xray-linux-64.zip rm -f Xray-linux-64.zip else wget https://github.com/XTLS/Xray-core/releases/download/v1.8.1/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/geosite.dat wget https://github.com/bootmortis/iran-hosted-domains/releases/latest/download/iran.dat mv xray xray-linux-${{ matrix.platform }} cd ../.. - name: Package run: tar -zcvf x-ui-linux-${{ matrix.platform }}.tar.gz x-ui - name: Upload uses: svenstaro/upload-release-action@2.6.1 with: repo_token: ${{ secrets.GITHUB_TOKEN }} tag: ${{ github.ref }} file: x-ui-linux-${{ matrix.platform }}.tar.gz asset_name: x-ui-linux-${{ matrix.platform }}.tar.gz prerelease: true overwrite: true