distributable: url: https://github.com/XTLS/Xray-core/archive/v{{version}}.tar.gz strip-components: 1 display-name: xray-core versions: github: XTLS/Xray-core runtime: env: XRAY_LOCATION_ASSET: ${XRAY_LOCATION_ASSET:-{{prefix}}/share/xray} build: dependencies: go.dev: ^1.21.4 curl.se: '*' script: - go build $GO_ARGS -ldflags="$LDFLAGS" ./main - run: | curl -L "$RES_GEOSITE" -o geosite.dat curl -L "$RES_GEOIP" -o geoip.dat working-directory: ${{prefix}}/share/xray - run: curl -L "$RES_CONFIG" -o config.json working-directory: ${{prefix}}/etc/xray env: LDFLAGS: - -s - -w - -buildid= GO_ARGS: - -trimpath - -o="{{prefix}}/bin/xray" RES_GEOSITE: https://github.com/v2fly/domain-list-community/releases/download/20230825070717/dlc.dat RES_CONFIG: https://raw.githubusercontent.com/v2fly/v2ray-core/v4.45.2/release/config/config.json RES_GEOIP: https://github.com/v2fly/geoip/releases/download/202308310037/geoip.dat linux: LDFLAGS: - -buildmode=pie provides: - bin/xray test: dependencies: linux: gitlab.com/procps-ng/procps: '*' fixture: | { "log": { "access": "./log" }, "outbounds": [ { "protocol": "freedom", "tag": "direct" } ], "routing": { "rules": [ { "ip": [ "geoip:private" ], "outboundTag": "direct", "type": "field" }, { "domains": [ "geosite:private" ], "outboundTag": "direct", "type": "field" } ] } } script: - $KILL xray || true - cat $FIXTURE > $HOME/config.json - xray run --config {{prefix}}/etc/xray/config.json & - sleep 3 - xray -c $HOME/config.json -test | grep 'Configuration OK.' - xray version | grep {{version}} - $KILL xray env: darwin: KILL: killall linux: KILL: pkill