diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..ea35639 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,102 @@ +name: Test Build domains_all and ipsum + +on: + workflow_dispatch: # Allows manual trigger of the workflow + schedule: + - cron: '0 0 */3 * *' # Runs every 3rd day at midnight UTC + +jobs: + run-python-scripts: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.9' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install requests idna geoip2 + + - name: Prepare directories for build + run: | + mkdir -p $GITHUB_WORKSPACE/sum/input + mkdir -p $GITHUB_WORKSPACE/sum/output + + - name: Run OONI Parser (ooni_domains.lst) + run: python "src/step 5 ooni list/ooni_list.py" + + - name: Run Domain Sum Up script (domains_all.lst) + run: python "src/step 5 ooni list/domain_sum.py" + + - name: Run OONI Resolver script (ooni_ips.lst) + run: python "src/step 5 ooni list/resolver_ooni.py" + + - name: Run Community Resolver script (ip_community.lst) + run: python "src/step 5 ooni list/resolver_community.py" + + - name: Run IP Sum (Temp) script (ips_all.lst) + run: python "src/step 5 ooni list/ip_4files_sum.py" + + - name: Run IP Sum + ASN (Final) script (ipsum.lst) + run: python "src/step 6 temp - summarization and ASN CIDRs.py" + + - name: Verify ipsum.lst Output + run: | + echo "Checking for ipsum.lst in sum/output:" + ls -la $GITHUB_WORKSPACE/sum/output/ + cat $GITHUB_WORKSPACE/sum/output/ipsum.lst || echo "ipsum.lst not found or empty" + + - name: Run Bird2 Converter script + run: python "src/bird2_converter.py" + + - name: Convert files to LF (Unix format) + run: | + sudo apt-get update && sudo apt-get install -y dos2unix + find $GITHUB_WORKSPACE -type f -name "*.lst" -exec dos2unix {} + + + - name: Verify Output + run: | + echo "Files in sum/output after build:" + ls -la $GITHUB_WORKSPACE/sum/output + + - name: Install Go + uses: actions/setup-go@v4 + with: + go-version: '1.22' + + - name: Prepare Xray-GeoIP + run: | + mkdir -p $GITHUB_WORKSPACE/src/xray-geoip + if [ -f $GITHUB_WORKSPACE/sum/output/ipsum.lst ]; then + cp $GITHUB_WORKSPACE/sum/output/ipsum.lst $GITHUB_WORKSPACE/src/xray-geoip/ipsum.lst + else + echo "Error: ipsum.lst not found!" && exit 1 + fi + cd $GITHUB_WORKSPACE/src/xray-geoip + go run ./ # This assumes a valid `main.go` file exists in `xray-geoip` + + - name: Prepare Xray-Geosite + run: | + mkdir -p $GITHUB_WORKSPACE/src/xray-geosite/data + if [ -f $GITHUB_WORKSPACE/sum/output/domains_all.lst ]; then + cp $GITHUB_WORKSPACE/sum/output/domains_all.lst $GITHUB_WORKSPACE/src/xray-geosite/data/refilter + else + echo "Error: domains_all.lst not found!" && exit 1 + fi + cd $GITHUB_WORKSPACE/src/xray-geosite + go run ./ --exportlists=refilter --outputname=geosite.dat + + - name: Upload Build Artifacts + uses: actions/upload-artifact@v4 + with: + name: build-results + path: | + $GITHUB_WORKSPACE/sum/ + $GITHUB_WORKSPACE/src/xray-geoip/dat/geoip.dat + $GITHUB_WORKSPACE/src/xray-geosite/data/geosite.dat