|
|
@@ -9,7 +9,53 @@ on:
|
|
|
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: Trigger Asset Update Workflow if Assets Missing
|
|
|
+ if: steps.check-assets.outputs.missing == 'true'
|
|
|
+ uses: actions/github-script@v6
|
|
|
+ with:
|
|
|
+ github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ script: |
|
|
|
+ const { owner, repo } = context.repo;
|
|
|
+ await github.rest.actions.createWorkflowDispatch({
|
|
|
+ owner,
|
|
|
+ repo,
|
|
|
+ workflow_id: 'scheduled-assets-update.yml',
|
|
|
+ ref: context.ref
|
|
|
+ });
|
|
|
+ console.log('Triggered scheduled-assets-update.yml due to missing assets on branch:', context.ref);
|
|
|
+
|
|
|
+ - name: Sleep for 90 seconds if Assets Missing
|
|
|
+ if: steps.check-assets.outputs.missing == 'true'
|
|
|
+ run: sleep 90
|
|
|
+
|
|
|
build:
|
|
|
+ needs: check-assets
|
|
|
permissions:
|
|
|
contents: write
|
|
|
strategy:
|