diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 460d6bb1055addec0ec53df9af34419a7b7c6af3..e8cdac7232af4e3a23f9518b086f543718cbbc19 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ stages: - prepare - build + - filters variables: CONTAINER_IMAGE: registry.gitlab.e.foundation:5000/$CI_PROJECT_PATH @@ -9,6 +10,8 @@ variables: build-docker: image: docker:25.0.5-git stage: prepare + rules: + - if: $CI_PIPELINE_SOURCE != "schedule" tags: - generic_privileged variables: @@ -24,6 +27,8 @@ build-docker: .build-cromite: image: $CONTAINER_IMAGE + rules: + - if: $CI_PIPELINE_SOURCE != "schedule" tags: - build-browser artifacts: @@ -56,3 +61,40 @@ build-cromite-x64: extends: .build-cromite script: - $CI_PROJECT_DIR/build.sh -c -s -a x64 + +.build-filters: + image: debian:12-slim + stage: filters + +update-filters: + stage: filters + extends: .build-filters + needs: [] + script: + - apt-get update && apt-get install -y curl + - bash generate_filters.sh + artifacts: + paths: + - filters.dat + +deploy_rsync: + stage: filters + extends: .build-filters + needs: + - job: update-filters + before_script: + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - echo "$SSH_PRIVATE_KEY_ED" > $HOME/.ssh/id_ed25519 + - echo "$SSH_PUBKEY_ED" > $HOME/.ssh/id_ed25519.pub + - echo "$SSH_KNOWN_HOSTS" > $HOME/.ssh/known_hosts + - chmod 600 ~/.ssh/id_ed25519 + - chmod 644 ~/.ssh/known_hosts ~/.ssh/id_ed25519.pub + - apt-get update && apt-get install -y rsync openssh-client + script: + - rsync -avz --chown=$REMOTE_USER:www-data --chmod=F644 filters.dat $REMOTE_USER@$IMAGES_HOSTNAME:$BROWSER_PATH + rules: + - if: '$CI_COMMIT_BRANCH == "master"' + + + diff --git a/generate_filters.sh b/generate_filters.sh new file mode 100755 index 0000000000000000000000000000000000000000..4c834f0b0c16846f1b763210d3e1d0b022da5f38 --- /dev/null +++ b/generate_filters.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +curl -o easylist.txt https://easylist.to/easylist/easylist.txt +curl -o easyprivacy.txt https://easylist.to/easylist/easyprivacy.txt + +filter_inputs="easyprivacy.txt,easylist.txt" + +echo "Generating filters.dat from $filter_inputs" +./ruleset_converter --input_format=filter-list \ + --output_format=unindexed-ruleset \ + --input_files=$filter_inputs \ + --output_file=filters.dat >/dev/null 2>&1 diff --git a/ruleset_converter b/ruleset_converter new file mode 100755 index 0000000000000000000000000000000000000000..68eb858a468f75ba7631cef3ce178a8ecc89bc07 Binary files /dev/null and b/ruleset_converter differ