Przeglądaj źródła

Merge pull request #74 from setenforce0/master

Implement CI via Travis and Docker
Zed 6 lat temu
rodzic
commit
1877b4fd83
3 zmienionych plików z 59 dodań i 1 usunięć
  1. 40 0
      .travis.yml
  2. 18 0
      Dockerfile
  3. 1 1
      tests/base.py

+ 40 - 0
.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

+ 18 - 0
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

+ 1 - 1
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()