| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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@v5
- - 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 ./...
|