diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..088342d --- /dev/null +++ b/.travis.yml @@ -0,0 +1,40 @@ +jobs: + include: + - stage: build + language: minimal + services: + - docker + script: + - docker build -t $IMAGE_NAME:$TRAVIS_COMMIT . + - echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_USERNAME --password-stdin + - docker push $IMAGE_NAME:$TRAVIS_COMMIT + - stage: deploy + if: (NOT type IN (pull_request)) AND (branch = master) + language: minimal + services: + - docker + script: + - docker pull $IMAGE_NAME:$TRAVIS_COMMIT + - docker tag $IMAGE_NAME:$TRAVIS_COMMIT $IMAGE_NAME:latest + - echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_USERNAME --password-stdin + - docker push $IMAGE_NAME:latest + - stage: test + sudo: required + dist: bionic + language: python + addons: + chrome: stable + python: + - 3.6 + services: + - docker + - xvfb + script: + - sudo apt update + - sudo apt install --force-yes chromium-browser chromium-chromedriver + - pip3 install --upgrade pip + - pip3 install -U seleniumbase pytest + - docker run -d -p 127.0.0.1:8080:8080/tcp $IMAGE_NAME:$TRAVIS_COMMIT + - sleep 10 + - cd tests + - pytest --headless -n 8 --reruns 10 --reruns-delay 2 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7629a5d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM nimlang/nim:alpine as nim +MAINTAINER setenforce@protonmail.com +EXPOSE 8080 +ENV HOSTNAME nitter.net + +COPY . /src/nitter +WORKDIR /src/nitter + +RUN apk update \ + && apk add libsass-dev libffi-dev openssl-dev \ + && nimble build -y -d:release -d:hostname=${HOSTNAME} \ + && nimble scss + +FROM alpine +WORKDIR /src/ +COPY --from=nim /src/nitter . +RUN apk add pcre-dev sqlite-dev +CMD ./nitter diff --git a/tests/base.py b/tests/base.py index e7385e7..dd1e625 100644 --- a/tests/base.py +++ b/tests/base.py @@ -91,7 +91,7 @@ class BaseTestCase(BaseCase): super(BaseTestCase, self).tearDown() def open_nitter(self, page=''): - self.open(f'http://localhost:5000/{page}') + self.open(f'http://localhost:8080/{page}') def search_username(self, username): self.open_nitter()