diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 27388db6f..000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,219 +0,0 @@ -default: - image: python:3.7 -services: - - name: docker.elastic.co/elasticsearch/elasticsearch:7.11.2 - alias: elasticsearch - command: [ "bin/elasticsearch", "-Expack.security.enabled=false", "-Ediscovery.type=single-node" ] -variables: - ES_JAVA_OPTS: "-Xms512m -Xmx512m" - - -#cache: -# directories: -# - $HOME/venv -# - $HOME/.cache/pip -# - $HOME/Library/Caches/pip -# - $HOME/Library/Caches/Homebrew -# - $TRAVIS_BUILD_DIR/.tox - - -stages: - - test - - build - - assets - - release - - -.tagged: - rules: - - if: '$CI_COMMIT_TAG =~ /^v[0-9\.]+$/' - when: on_success - - - -test:lint: - stage: test - script: - - make install tools - - make lint - -test:unit: - stage: test - script: - - make install tools - - HOME=/tmp coverage run -p --source=lbry -m unittest discover -vv tests.unit - -test:datanetwork-integration: - stage: test - script: - - pip install tox-travis - - ELASTIC_HOST=elasticsearch tox -e datanetwork --recreate - -test:blockchain-integration: - stage: test - script: - - curl "http://elasticsearch:9200/_cat/health" - - pip install tox-travis - - ELASTIC_HOST=elasticsearch tox -e blockchain - -test:other-integration: - stage: test - script: - - apt-get update - - apt-get install -y --no-install-recommends ffmpeg - - pip install tox-travis - - ELASTIC_HOST=elasticsearch tox -e other - -test:json-api: - stage: test - script: - - make install tools - - ELASTIC_HOST=elasticsearch HOME=/tmp coverage run -p --source=lbry scripts/generate_json_api.py - - - -.build: - stage: build - artifacts: - expire_in: 1 day - paths: - - lbrynet-${OS}.zip - script: - - pip install --upgrade 'setuptools<45.0.0' - - pip install pyinstaller - - pip install -e . - - python3.7 docker/set_build.py # must come after lbry is installed because it imports lbry - - pyinstaller --onefile --name lbrynet lbry/extras/cli.py - - chmod +x dist/lbrynet - - zip --junk-paths ${CI_PROJECT_DIR}/lbrynet-${OS}.zip dist/lbrynet # gitlab expects artifacts to be in $CI_PROJECT_DIR - - openssl dgst -sha256 ${CI_PROJECT_DIR}/lbrynet-${OS}.zip | egrep -o [0-9a-f]+$ # get sha256 of asset. works on mac and ubuntu - - dist/lbrynet --version - -build:linux: - extends: .build - image: ubuntu:16.04 - variables: - OS: linux - before_script: - - apt-get update - - apt-get install -y --no-install-recommends software-properties-common zip curl build-essential - - add-apt-repository -y ppa:deadsnakes/ppa - - apt-get update - - apt-get install -y --no-install-recommends python3.7-dev - - python3.7 <(curl -q https://bootstrap.pypa.io/get-pip.py) # make sure we get pip with python3.7 - - pip install lbry-libtorrent - -build:mac: - extends: .build - tags: [macos] # makes gitlab use the mac runner - variables: - OS: mac - GIT_DEPTH: 5 - VENV: /tmp/gitlab-lbry-sdk-venv - before_script: -# - brew upgrade python || true - - python3 --version | grep -q '^Python 3\.7\.' # dont upgrade python on every run. just make sure we're on the right Python -# - pip3 install --user --upgrade pip virtualenv - - pip3 --version | grep -q '\(python 3\.7\)' - - virtualenv --python=python3.7 "${VENV}" - - source "${VENV}/bin/activate" - after_script: - - rm -rf "${VENV}" - -build:windows: - extends: .build - tags: [windows] # makes gitlab use the windows runner - variables: - OS: windows - GIT_DEPTH: 5 - before_script: - - ./docker/install_choco.ps1 - - choco install -y --x64 python --version=3.7.9 - - choco install -y 7zip checksum - - python --version # | findstr /B "Python 3\.7\." # dont upgrade python on every run. just make sure we're on the right Python - - pip --version # | findstr /E '\(python 3\.7\)' - - python -c "import sys;print(f'{str(64 if sys.maxsize > 2**32 else 32)} bit python\n{sys.platform}')" - - pip install virtualenv pywin32 - - virtualenv venv - - venv/Scripts/activate.ps1 - after_script: - - rmdir -Recurse venv - script: - - pip install --upgrade 'setuptools<45.0.0' - - pip install pyinstaller==3.5 - - pip install -e . - - python docker/set_build.py # must come after lbry is installed because it imports lbry - - pyinstaller --additional-hooks-dir=scripts/. --icon=icons/lbry256.ico -F -n lbrynet lbry/extras/cli.py - - 7z a -tzip $env:CI_PROJECT_DIR/lbrynet-${OS}.zip ./dist/lbrynet.exe - - checksum --type=sha256 --file=$env:CI_PROJECT_DIR/lbrynet-${OS}.zip - - dist/lbrynet.exe --version - - - -# s3 = upload asset to s3 (build.lbry.io) -.s3: - stage: assets - variables: - GIT_STRATEGY: none - script: - - "[ -f lbrynet-${OS}.zip ]" # check that asset exists before trying to upload - - pip install awscli - - S3_PATH="daemon/gitlab-build-${CI_PIPELINE_ID}_commit-${CI_COMMIT_SHA:0:7}$( if [ ! -z ${CI_COMMIT_TAG} ]; then echo _tag-${CI_COMMIT_TAG}; else echo _branch-${CI_COMMIT_REF_NAME}; fi )" - - AWS_ACCESS_KEY_ID=${ARTIFACTS_KEY} AWS_SECRET_ACCESS_KEY=${ARTIFACTS_SECRET} AWS_REGION=${ARTIFACTS_REGION} - aws s3 cp lbrynet-${OS}.zip s3://${ARTIFACTS_BUCKET}/${S3_PATH}/lbrynet-${OS}.zip - -s3:linux: - extends: .s3 - variables: {OS: linux} - needs: ["build:linux"] - -s3:mac: - extends: .s3 - variables: {OS: mac} - needs: ["build:mac"] - -s3:windows: - extends: .s3 - variables: {OS: windows} - needs: ["build:windows"] - - - -# github = upload assets to github when there's a tagged release -.github: - extends: .tagged - stage: assets - variables: - GIT_STRATEGY: none - script: - - "[ -f lbrynet-${OS}.zip ]" # check that asset exists before trying to upload. githubrelease won't error if its missing - - pip install githubrelease - - githubrelease --no-progress --github-token ${GITHUB_CI_USER_ACCESS_TOKEN} asset lbryio/lbry-sdk upload ${CI_COMMIT_TAG} lbrynet-${OS}.zip - -github:linux: - extends: .github - variables: {OS: linux} - needs: ["build:linux"] - -github:mac: - extends: .github - variables: {OS: mac} - needs: ["build:mac"] - -github:windows: - extends: .github - variables: {OS: windows} - needs: ["build:windows"] - - - -publish: - extends: .tagged - stage: release - variables: - GIT_STRATEGY: none - script: - - pip install githubrelease - - githubrelease --no-progress --github-token ${GITHUB_CI_USER_ACCESS_TOKEN} release lbryio/lbry-sdk publish ${CI_COMMIT_TAG} - - > - curl -X POST -H 'Content-type: application/json' --data '{"text":" There is a new SDK release: https://github.com/lbryio/lbry-sdk/releases/tag/'"${CI_COMMIT_TAG}"'\n'"$(curl -s "https://api.github.com/repos/lbryio/lbry-sdk/releases/tags/${CI_COMMIT_TAG}" | egrep '\w*\"body\":' | cut -d':' -f 2- | tail -c +3 | head -c -2)"'", "channel":"tech"}' "$(echo ${SLACK_WEBHOOK_URL_BASE64} | base64 -d)"