Codebase list python-faraday / debian/3.8.0-0kali1 .gitlab-ci.yml
debian/3.8.0-0kali1

Tree @debian/3.8.0-0kali1 (Download .tar.gz)

.gitlab-ci.yml @debian/3.8.0-0kali1raw · history · blame

variables:
    TZ: "America/New_York"
    # Configure postgres service (https://hub.docker.com/_/postgres/)
    POSTGRES_DB: custom_db
    POSTGRES_USER: custom_user
    POSTGRES_PASSWORD: custom_pass
    PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"

cache:
  paths:
    - .cache/pip

stages:
    - pre_testing
    - testing
    - post_testing
    - build

services:
    - postgres:latest

closure_compiler:
    tags:
        - faradaytests
    image:
        name: jborza/closure-compiler
        entrypoint: ["/bin/sh", "-c"]

    stage: pre_testing
    script:
        - /opt/cc.sh faraday/server/www/scripts

merge_conflict_check:
    tags:
        - faradaytests
    image: python:3
    stage: pre_testing
    allow_failure: true
    script:
        - git config --global user.email "[email protected]"
        - git config --global user.name "Mergerbot"
        - python3 merge-conflict-detector.py

pylint:
    tags:
        - faradaytests
    image: registry.gitlab.com/faradaysec/faraday/faraday_testing_base  # I just need an image with python-dev and python-pip
    stage: pre_testing
    script:
        - pip install pylint anybadge
        - pylint faraday/server |tee pylint.txt || true
        - score=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' pylint.txt)
        - anybadge --label pylint --value=$score --file pylint.svg 4=red 6=orange 8=yellow 10=green
    artifacts:
        paths:
            - pylint.svg

postgresql_test:
    image: registry.gitlab.com/faradaysec/faraday/faraday_testing_base
    tags:
        - faradaytests
    stage: testing
    coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
    script:
        - apt-get update -qy
        - apt-get install -y gobject-introspection libgirepository1.0-dev libcairo2-dev python-cairo libpq-dev
        - pip install virtualenv
        - virtualenv -p python2 faraday_venv
        - source faraday_venv/bin/activate
        #- pip install --upgrade -r requirements_server.txt
        - pip install --upgrade -r requirements.txt
        - python setup.py install
        - pip install --upgrade responses pytest-xdist pytest-cov
        - pip install --upgrade -r requirements_dev.txt
        - mkdir -p ~/.faraday/config
        - cp tests/data/server.ini ~/.faraday/config
        #- sed -i 's/mapped_table/persist_selectable/' faraday_venv/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py  # TODO remove when flask_sqlalchemy fixes the issue
        - mkdir run_from
        - cd run_from && pytest ../tests -v --capture=sys --cov=../faraday/server --color=yes --disable-warnings --connection-string=postgresql+psycopg2://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres/$POSTGRES_DB
    artifacts:
        when: on_failure
        paths:
            - ~/.faraday/logs/faraday-server.log

sqlite_test:
    image: registry.gitlab.com/faradaysec/faraday/faraday_testing_base
    tags:
        - faradaytests
    stage: testing
    coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
    script:
        - apt-get update -qy
        - apt-get install -y gobject-introspection libgirepository1.0-dev libcairo2-dev python-cairo libpq-dev
        - pip install virtualenv
        - virtualenv -p python2 faraday_venv
        - source faraday_venv/bin/activate
        #- pip install --upgrade -r requirements_server.txt
        - pip install --upgrade -r requirements.txt
        - python setup.py install
        - pip install --upgrade responses pytest-xdist pytest-cov
        - pip install --upgrade -r requirements_dev.txt
        - mkdir -p ~/.faraday/config
        - cp tests/data/server.ini ~/.faraday/config
        - mkdir run_from
        - cd run_from && pytest ../tests --capture=sys -v --cov=../faraday/server --color=yes --disable-warnings
    artifacts:
        when: on_failure
        paths:
            - dist/*

generate_release_file:
    image: python:3
    stage: post_testing
    allow_failure: true
    script:
        - apt-get update -qy
        - apt-get install -y python-dev python-pip
        - pip install packaging
        - cd CHANGELOG && python3 changelog.py
    artifacts:
        paths:
            - CHANGELOG/RELEASE.md
    only:
        variables:
            - $FULL_DOC == "True"
            - $RELEASE_FILE == "True"
            - $CI_COMMIT_REF_NAME =~ /^.*\/(dev|master)$/

binary_files:
    image: python:2.7.16
    stage: build
    script:
        - apt-get update -qy
        - apt-get install -y build-essential ipython python-setuptools python-pip python-dev libssl-dev libffi-dev pkg-config libxml2-dev libxslt1-dev libfreetype6-dev libpng-dev
        - apt-get install -y libpq-dev python-pip python-dev gir1.2-gtk-3.0 gir1.2-vte-2.91 python-gobject zsh curl
        - apt-get install -y gobject-introspection libgirepository1.0-dev libcairo2-dev python-cairo libgdk-pixbuf2.0-dev
        - apt-get install -y libcanberra-gtk-module libcanberra-gtk* libxml2-dev libxslt1-dev gir1.2-gtk-3.0 gir1.2-vte-2.91
        - pip install virtualenv
        - virtualenv -p python2 faraday_venv
        - source faraday_venv/bin/activate
        - pip install pyinstaller
        - pip install --upgrade -r requirements.txt
        - python setup.py install
        - pip install .[gtk]
        - pyinstaller -F -w --onefile --icon=faraday/faraday/server/www/favicon.ico start_server.spec
        - pyinstaller -F -w --onefile --icon=faraday/faraday/server/www/favicon.ico manage.spec
        - pyinstaller -F -w --onefile --icon=faraday/faraday/server/www/favicon.ico start_client.spec
        - pyinstaller -F -w --onefile --icon=faraday/faraday/server/www/favicon.ico fplugin.spec
        - mv dist/start_client dist/faraday-client
        - mv dist/start_server dist/faraday-server
        - mv dist/manage dist/faraday-manage
        - mv dist/fplugin dist/faraday-fplugin
    artifacts:
        name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME-binaries"
        paths:
          - dist/faraday-server
          - dist/faraday-manage
          - dist/faraday-client
          - dist/faraday-fplugin
        expire_in: 1 week
    only:
        variables:
            - $CI_COMMIT_REF_NAME =~ /^.*\/(dev|master)$/

macos_dmg:
    tags:
        - macos
    stage: build
    script:
        - pip install virtualenv
        - virtualenv -p python2 faraday_venv
        - source faraday_venv/bin/activate
        - export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/local/opt/libffi/lib/pkgconfig"
        - pip install pyinstaller
        - pip install --upgrade -r requirements.txt
        - python setup.py install
        - pip install .[gtk]
        - pyinstaller -F -w --onefile --onefile --icon=faraday/faraday/server/www/favicon.ico start_server.spec
        - pyinstaller -F -w --onefile --onefile --icon=faraday/faraday/server/www/favicon.ico manage.spec
        - pyinstaller -F -w --onefile --onefile --icon=faraday/faraday/server/www/favicon.ico start_client.spec
        - pyinstaller -F -w --onefile --icon=faraday/faraday/server/www/favicon.ico fplugin.spec
        - mv dist/start_client dist/faraday-client
        - mv dist/start_server dist/faraday-server
        - mv dist/manage dist/faraday-manage
        - mv dist/fplugin dist/faraday-fplugin
        - hdiutil create /tmp/tmp.dmg -ov -volname "Faraday" -fs HFS+ -srcfolder "./dist"
        - hdiutil convert /tmp/tmp.dmg -format UDZO -o Faraday.dmg
    artifacts:
        name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME-binaries"
        paths:
            - Faraday.dmg
        expire_in: 1 week
    only:
        variables:
            - $CI_COMMIT_REF_NAME =~ /^.*\/(dev|master)$/

# This is a test of future test case that will be scheduled
i_do_nothing:
    image: python:3
    stage: post_testing
    allow_failure: true
    script:
        - apt-get update -qy
        - apt-get install -y python-dev python-pip
    only:
        variables:
            - $FULL_TEST == "True"
            - $I_DO_NOTH_TEST == "True"


# This is a test of future test case that will be scheduled
i_do_nothing2:
    image: python:3
    stage: post_testing
    allow_failure: true
    script:
        - apt-get update -qy
        - apt-get install -y python-dev python-pip
    only:
        variables:
            - $FULL_TEST == "True"
            - $I_DO_NOTH2_TEST == "True"