mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-05-10 06:08:41 +00:00
61 lines
1.6 KiB
YAML
61 lines
1.6 KiB
YAML
name: Test
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
|
|
jobs:
|
|
check-assets:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Restore Geodat Cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: resources
|
|
key: xray-geodat-
|
|
- name: Check Assets Existence
|
|
id: check-assets
|
|
run: |
|
|
[ -d 'resources' ] || mkdir resources
|
|
LIST=('geoip.dat' 'geosite.dat')
|
|
for FILE_NAME in "${LIST[@]}"
|
|
do
|
|
echo -e "Checking ${FILE_NAME}..."
|
|
if [ -s "./resources/${FILE_NAME}" ]; then
|
|
echo -e "${FILE_NAME} exists."
|
|
else
|
|
echo -e "${FILE_NAME} does not exist."
|
|
echo "missing=true" >> $GITHUB_OUTPUT
|
|
break
|
|
fi
|
|
done
|
|
- name: Sleep for 90 seconds if Assets Missing
|
|
if: steps.check-assets.outputs.missing == 'true'
|
|
run: sleep 90
|
|
|
|
test:
|
|
needs: check-assets
|
|
permissions:
|
|
contents: read
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [windows-latest, ubuntu-latest, macos-latest]
|
|
steps:
|
|
- name: Checkout codebase
|
|
uses: actions/checkout@v4
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version-file: go.mod
|
|
check-latest: true
|
|
- name: Restore Geodat Cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: resources
|
|
key: xray-geodat-
|
|
enableCrossOsArchive: true
|
|
- name: Test
|
|
run: go test -timeout 1h -v ./...
|