image: alpine:latest # Use latest version of Alpine Linux docker image

before_script:
  # Install dependencies
  - 'which ssh-agent || ( apk update && apk add openssh-client git)'

  # Run ssh-agent
  - eval $(ssh-agent -s)

  # Import private key with ed25519 workaround
  - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null

  # Create the SSH directory and give it the right permissions
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh

  # Add gitlab.com as ssh known host
  - ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
  - chmod 644 ~/.ssh/known_hosts

  # Set commit author
  - git config --global user.name "curben-bot"
  - git config --global user.email "curben-bot@users.noreply.gitlab.com"

deploy:
  script:
    # SSH to gitlab.com
    - ssh git@gitlab.com

    # Shallow cloning for faster cloning
    - git clone --depth 3 git@gitlab.com:curben/urlhaus-filter.git build

    # Change to the downloaded repo directory
    - cd build/

    # Give execute permission to scripts
    - cd utils/
    - chmod 700 umbrella-top-1m.sh script.sh commit.sh

    # Download Umbrella Popularity List
    - ./umbrella-top-1m.sh

    # Download database dump and process it
    - ./script.sh

    # Commit the changes
    - ./commit.sh

    # Push the commit
    - cd ../
    - git push

  only:
    # Allow CI to be triggered by schedule
    - schedules

    # Allow CI to be triggered manually
    - web
