Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMHSanaei <ho3ein.sanaei@gmail.com>2026-03-18 00:30:05 +0300
committerMHSanaei <ho3ein.sanaei@gmail.com>2026-03-18 01:01:15 +0300
commitf0f98c712225269e1a3db1796eff88ebecaf2a2a (patch)
tree9894ebdd16f9f6b74de5b997b76f2c449079f734 /.github/workflows/release.yml
parent554981d9d347c88a5c5973aa1fd711676c0cd7e9 (diff)
Add Go code analyzer workflow
Diffstat (limited to '.github/workflows/release.yml')
-rw-r--r--.github/workflows/release.yml56
1 files changed, 45 insertions, 11 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 9e94fb74..ed9417c9 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -2,11 +2,9 @@ name: Release 3X-UI
on:
workflow_dispatch:
- release:
- types: [published]
push:
branches:
- - main
+ - '**'
tags:
- "v*.*.*"
paths:
@@ -20,9 +18,48 @@ on:
- 'x-ui.service.debian'
- 'x-ui.service.arch'
- 'x-ui.service.rhel'
+ pull_request:
jobs:
+ analyze:
+ name: Analyze Go code
+ permissions:
+ contents: read
+ runs-on: ubuntu-latest
+ timeout-minutes: 20
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+
+ - name: Set up Go
+ uses: actions/setup-go@v6
+ with:
+ go-version-file: go.mod
+ cache: true
+
+ - name: Check formatting
+ run: |
+ unformatted=$(gofmt -l .)
+ if [ -n "$unformatted" ]; then
+ echo "These files are not gofmt-formatted:"
+ echo "$unformatted"
+ exit 1
+ fi
+
+ - name: Run go vet
+ run: go vet ./...
+
+ - name: Run staticcheck
+ uses: dominikh/staticcheck-action@v1
+ with:
+ version: "latest"
+ install-go: false
+
+ - name: Run tests
+ run: go test -race -shuffle=on ./...
+
build:
+ needs: analyze
permissions:
contents: write
strategy:
@@ -140,12 +177,10 @@ jobs:
- name: Upload files to GH release
uses: svenstaro/upload-release-action@v2
- if: |
- (github.event_name == 'release' && github.event.action == 'published') ||
- (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
- tag: ${{ github.ref }}
+ tag: ${{ github.ref_name }}
file: x-ui-linux-${{ matrix.platform }}.tar.gz
asset_name: x-ui-linux-${{ matrix.platform }}.tar.gz
overwrite: true
@@ -156,6 +191,7 @@ jobs:
# =================================
build-windows:
name: Build for Windows
+ needs: analyze
permissions:
contents: write
strategy:
@@ -237,12 +273,10 @@ jobs:
- name: Upload files to GH release
uses: svenstaro/upload-release-action@v2
- if: |
- (github.event_name == 'release' && github.event.action == 'published') ||
- (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
- tag: ${{ github.ref }}
+ tag: ${{ github.ref_name }}
file: x-ui-windows-amd64.zip
asset_name: x-ui-windows-amd64.zip
overwrite: true