forked from LBRYCommunity/lbry-sdk
cleanup github actions to be able to drop gitlab
This commit is contained in:
parent
f257ff2f97
commit
34fc530fba
7 changed files with 141 additions and 144 deletions
67
.github/workflows/codeql-analysis.yml
vendored
67
.github/workflows/codeql-analysis.yml
vendored
|
@ -1,67 +0,0 @@
|
||||||
# For most projects, this workflow file will not need changing; you simply need
|
|
||||||
# to commit it to your repository.
|
|
||||||
#
|
|
||||||
# You may wish to alter this file to override the set of languages analyzed,
|
|
||||||
# or to provide custom queries or build logic.
|
|
||||||
#
|
|
||||||
# ******** NOTE ********
|
|
||||||
# We have attempted to detect the languages in your repository. Please check
|
|
||||||
# the `language` matrix defined below to confirm you have the correct set of
|
|
||||||
# supported CodeQL languages.
|
|
||||||
#
|
|
||||||
name: "CodeQL"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ master ]
|
|
||||||
pull_request:
|
|
||||||
# The branches below must be a subset of the branches above
|
|
||||||
branches: [ master ]
|
|
||||||
schedule:
|
|
||||||
- cron: '21 0 * * 4'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
analyze:
|
|
||||||
name: Analyze
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
language: [ 'python' ]
|
|
||||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
|
||||||
# Learn more:
|
|
||||||
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@v1
|
|
||||||
with:
|
|
||||||
languages: ${{ matrix.language }}
|
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
||||||
# By default, queries listed here will override any specified in a config file.
|
|
||||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
|
||||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
|
||||||
|
|
||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
|
||||||
- name: Autobuild
|
|
||||||
uses: github/codeql-action/autobuild@v1
|
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
|
||||||
# 📚 https://git.io/JvXDl
|
|
||||||
|
|
||||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
|
||||||
# and modify them (or add more) to build your code if your project
|
|
||||||
# uses a compiled language
|
|
||||||
|
|
||||||
#- run: |
|
|
||||||
# make bootstrap
|
|
||||||
# make release
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@v1
|
|
139
.github/workflows/main.yml
vendored
139
.github/workflows/main.yml
vendored
|
@ -1,5 +1,10 @@
|
||||||
name: ci
|
name: ci
|
||||||
on: pull_request
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
|
@ -10,18 +15,41 @@ jobs:
|
||||||
- uses: actions/setup-python@v1
|
- uses: actions/setup-python@v1
|
||||||
with:
|
with:
|
||||||
python-version: '3.7'
|
python-version: '3.7'
|
||||||
- run: make install tools
|
- name: extract pip cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.cache/pip
|
||||||
|
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
|
||||||
|
restore-keys: ${{ runner.os }}-pip-
|
||||||
|
- run: pip install --user --upgrade pip wheel
|
||||||
|
- run: pip install -e .[torrent,lint]
|
||||||
- run: make lint
|
- run: make lint
|
||||||
|
|
||||||
tests-unit:
|
tests-unit:
|
||||||
name: "tests / unit"
|
name: "tests / unit"
|
||||||
runs-on: ubuntu-latest
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
#- macos-latest
|
||||||
|
#- windows-latest
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-python@v1
|
- uses: actions/setup-python@v1
|
||||||
with:
|
with:
|
||||||
python-version: '3.7'
|
python-version: '3.7'
|
||||||
- run: make install tools
|
- name: set pip cache dir
|
||||||
|
id: pip-cache
|
||||||
|
run: echo "::set-output name=dir::$(pip cache dir)"
|
||||||
|
- name: extract pip cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ${{ steps.pip-cache.outputs.dir }}
|
||||||
|
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
|
||||||
|
restore-keys: ${{ runner.os }}-pip-
|
||||||
|
- run: pip install --user --upgrade pip wheel
|
||||||
|
- run: pip install -e .[torrent,test]
|
||||||
- env:
|
- env:
|
||||||
HOME: /tmp
|
HOME: /tmp
|
||||||
run: make test-unit-coverage
|
run: make test-unit-coverage
|
||||||
|
@ -38,15 +66,14 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- name: Configure sysctl limits
|
- name: Configure sysctl limits
|
||||||
run: |
|
run: |
|
||||||
sudo swapoff -a
|
sudo swapoff -a
|
||||||
sudo sysctl -w vm.swappiness=1
|
sudo sysctl -w vm.swappiness=1
|
||||||
sudo sysctl -w fs.file-max=262144
|
sudo sysctl -w fs.file-max=262144
|
||||||
sudo sysctl -w vm.max_map_count=262144
|
sudo sysctl -w vm.max_map_count=262144
|
||||||
|
|
||||||
- name: Runs Elasticsearch
|
- name: Runs Elasticsearch
|
||||||
uses: elastic/elastic-github-actions/elasticsearch@master
|
uses: elastic/elastic-github-actions/elasticsearch@master
|
||||||
with:
|
with:
|
||||||
stack-version: 7.6.0
|
stack-version: 7.6.0
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-python@v1
|
- uses: actions/setup-python@v1
|
||||||
with:
|
with:
|
||||||
|
@ -55,16 +82,22 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y --no-install-recommends ffmpeg
|
sudo apt-get install -y --no-install-recommends ffmpeg
|
||||||
- run: pip install tox-travis
|
- name: extract pip cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ./.tox
|
||||||
|
key: tox-integration-${{ matrix.test }}-${{ hashFiles('setup.py') }}
|
||||||
|
restore-keys: txo-integration-${{ matrix.test }}-
|
||||||
|
- run: pip install tox
|
||||||
- run: tox -e ${{ matrix.test }}
|
- run: tox -e ${{ matrix.test }}
|
||||||
|
|
||||||
build:
|
build:
|
||||||
needs: ["lint", "tests-unit", "tests-integration"]
|
needs: ["lint", "tests-unit", "tests-integration"]
|
||||||
name: "build"
|
name: "build / binary"
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
- ubuntu-latest
|
- ubuntu-16.04
|
||||||
- macos-latest
|
- macos-latest
|
||||||
- windows-latest
|
- windows-latest
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
@ -73,22 +106,80 @@ jobs:
|
||||||
- uses: actions/setup-python@v1
|
- uses: actions/setup-python@v1
|
||||||
with:
|
with:
|
||||||
python-version: '3.7'
|
python-version: '3.7'
|
||||||
- name: Setup
|
- id: os-name
|
||||||
run: |
|
uses: ASzc/change-string-case-action@v1
|
||||||
pip install pyinstaller
|
with:
|
||||||
pip install -e .
|
string: ${{ runner.os }}
|
||||||
# https://stackoverflow.com/a/61693590
|
- name: set pip cache dir
|
||||||
# https://github.com/pypa/setuptools/issues/1963
|
id: pip-cache
|
||||||
pip install --upgrade 'setuptools<45.0.0'
|
run: echo "::set-output name=dir::$(pip cache dir)"
|
||||||
- if: startsWith(matrix.os, 'windows') == false
|
- name: extract pip cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ${{ steps.pip-cache.outputs.dir }}
|
||||||
|
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
|
||||||
|
restore-keys: ${{ runner.os }}-pip-
|
||||||
|
- run: pip install pyinstaller==4.4
|
||||||
|
- run: pip install -e .
|
||||||
|
- if: startsWith(github.ref, 'refs/tags/v')
|
||||||
|
run: python docker/set_build.py
|
||||||
|
- if: startsWith(runner.os, 'linux') || startsWith(runner.os, 'mac')
|
||||||
name: Build & Run (Unix)
|
name: Build & Run (Unix)
|
||||||
run: |
|
run: |
|
||||||
pyinstaller --onefile --name lbrynet lbry/extras/cli.py
|
pyinstaller --onefile --name lbrynet lbry/extras/cli.py
|
||||||
chmod +x dist/lbrynet
|
|
||||||
dist/lbrynet --version
|
dist/lbrynet --version
|
||||||
- if: startsWith(matrix.os, 'windows')
|
- if: startsWith(runner.os, 'windows')
|
||||||
name: Build & Run (Windows)
|
name: Build & Run (Windows)
|
||||||
run: |
|
run: |
|
||||||
pip install pywin32
|
pip install pywin32==301
|
||||||
pyinstaller --additional-hooks-dir=scripts/. --icon=icons/lbry256.ico --onefile --name lbrynet lbry/extras/cli.py
|
pyinstaller --additional-hooks-dir=scripts/. --icon=icons/lbry256.ico --onefile --name lbrynet lbry/extras/cli.py
|
||||||
dist/lbrynet.exe --version
|
dist/lbrynet.exe --version
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: lbrynet-${{ steps.os-name.outputs.lowercase }}
|
||||||
|
path: dist/
|
||||||
|
|
||||||
|
docker:
|
||||||
|
name: "build / docker"
|
||||||
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
|
needs: ["build"]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: lbrynet-linux
|
||||||
|
- run: |
|
||||||
|
chmod +x lbrynet
|
||||||
|
mv lbrynet docker
|
||||||
|
- name: build and push docker image
|
||||||
|
uses: docker/build-push-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
repository: lbry/lbrynet
|
||||||
|
path: docker
|
||||||
|
dockerfile: docker/Dockerfile.wallet_server
|
||||||
|
tag_with_ref: true
|
||||||
|
tag_with_sha: true
|
||||||
|
add_git_labels: true
|
||||||
|
|
||||||
|
release:
|
||||||
|
name: "release"
|
||||||
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
|
needs: ["build"]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/download-artifact@v2
|
||||||
|
- name: zip binaries
|
||||||
|
run: |
|
||||||
|
chmod +x lbrynet-macos/lbrynet
|
||||||
|
chmod +x lbrynet-linux/lbrynet
|
||||||
|
zip --junk-paths lbrynet-mac.zip lbrynet-macos/lbrynet
|
||||||
|
zip --junk-paths lbrynet-linux.zip lbrynet-linux/lbrynet
|
||||||
|
zip --junk-paths lbrynet-windows.zip lbrynet-windows/lbrynet.exe
|
||||||
|
ls -lh
|
||||||
|
- run: gh release upload ${GITHUB_REF#refs/tags/} lbrynet-mac.zip lbrynet-linux.zip lbrynet-windows.zip
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
|
|
||||||
|
|
44
.github/workflows/ossar-analysis.yml
vendored
44
.github/workflows/ossar-analysis.yml
vendored
|
@ -1,44 +0,0 @@
|
||||||
# This workflow integrates a collection of open source static analysis tools
|
|
||||||
# with GitHub code scanning. For documentation, or to provide feedback, visit
|
|
||||||
# https://github.com/github/ossar-action
|
|
||||||
name: OSSAR
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ master ]
|
|
||||||
pull_request:
|
|
||||||
# The branches below must be a subset of the branches above
|
|
||||||
branches: [ master ]
|
|
||||||
schedule:
|
|
||||||
- cron: '28 17 * * 1'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
OSSAR-Scan:
|
|
||||||
# OSSAR runs on windows-latest.
|
|
||||||
# ubuntu-latest and macos-latest support coming soon
|
|
||||||
runs-on: windows-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
# Ensure a compatible version of dotnet is installed.
|
|
||||||
# The [Microsoft Security Code Analysis CLI](https://aka.ms/mscadocs) is built with dotnet v3.1.201.
|
|
||||||
# A version greater than or equal to v3.1.201 of dotnet must be installed on the agent in order to run this action.
|
|
||||||
# GitHub hosted runners already have a compatible version of dotnet installed and this step may be skipped.
|
|
||||||
# For self-hosted runners, ensure dotnet version 3.1.201 or later is installed by including this action:
|
|
||||||
# - name: Install .NET
|
|
||||||
# uses: actions/setup-dotnet@v1
|
|
||||||
# with:
|
|
||||||
# dotnet-version: '3.1.x'
|
|
||||||
|
|
||||||
# Run open source static analysis tools
|
|
||||||
- name: Run OSSAR
|
|
||||||
uses: github/ossar-action@v1
|
|
||||||
id: ossar
|
|
||||||
|
|
||||||
# Upload results to the Security tab
|
|
||||||
- name: Upload OSSAR results
|
|
||||||
uses: github/codeql-action/upload-sarif@v1
|
|
||||||
with:
|
|
||||||
sarif_file: ${{ steps.ossar.outputs.sarifFile }}
|
|
17
.github/workflows/release.yml
vendored
Normal file
17
.github/workflows/release.yml
vendored
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
name: slack
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
name: "slack notification"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: send message
|
||||||
|
uses: slackapi/slack-github-action@v1.14.0
|
||||||
|
with:
|
||||||
|
payload: '{"type": "mrkdwn", "text":"Hello, *World*!"}'
|
||||||
|
env:
|
||||||
|
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_RELEASE_BOT_WEBHOOK }}
|
||||||
|
|
1
Makefile
1
Makefile
|
@ -1,7 +1,6 @@
|
||||||
.PHONY: install tools lint test test-unit test-unit-coverage test-integration idea
|
.PHONY: install tools lint test test-unit test-unit-coverage test-integration idea
|
||||||
|
|
||||||
install:
|
install:
|
||||||
pip install lbry-libtorrent
|
|
||||||
pip install -e .
|
pip install -e .
|
||||||
|
|
||||||
tools:
|
tools:
|
||||||
|
|
7
setup.py
7
setup.py
|
@ -55,8 +55,13 @@ setup(
|
||||||
'pbkdf2==1.3',
|
'pbkdf2==1.3',
|
||||||
'attrs==18.2.0',
|
'attrs==18.2.0',
|
||||||
'pylru==1.1.0',
|
'pylru==1.1.0',
|
||||||
'elasticsearch==7.10.1'
|
'elasticsearch==7.10.1',
|
||||||
] + PLYVEL,
|
] + PLYVEL,
|
||||||
|
extras_require={
|
||||||
|
'torrent': ['lbry-libtorrent'],
|
||||||
|
'lint': ['mypy==0.701', 'pylint==2.4.4'],
|
||||||
|
'test': ['coverage'],
|
||||||
|
},
|
||||||
classifiers=[
|
classifiers=[
|
||||||
'Framework :: AsyncIO',
|
'Framework :: AsyncIO',
|
||||||
'Intended Audience :: Developers',
|
'Intended Audience :: Developers',
|
||||||
|
|
10
tox.ini
10
tox.ini
|
@ -1,18 +1,14 @@
|
||||||
[testenv]
|
[testenv]
|
||||||
deps =
|
deps =
|
||||||
coverage
|
coverage
|
||||||
|
extras =
|
||||||
extras = test
|
test
|
||||||
|
torrent
|
||||||
changedir = {toxinidir}/tests
|
changedir = {toxinidir}/tests
|
||||||
setenv =
|
setenv =
|
||||||
HOME=/tmp
|
HOME=/tmp
|
||||||
ELASTIC_HOST={env:ELASTIC_HOST:localhost}
|
ELASTIC_HOST={env:ELASTIC_HOST:localhost}
|
||||||
commands =
|
commands =
|
||||||
pip install https://github.com/rogerbinns/apsw/releases/download/3.30.1-r1/apsw-3.30.1-r1.zip \
|
|
||||||
--global-option=fetch \
|
|
||||||
--global-option=--version --global-option=3.30.1 --global-option=--all \
|
|
||||||
--global-option=build --global-option=--enable --global-option=fts5
|
|
||||||
pip install lbry-libtorrent
|
|
||||||
orchstr8 download
|
orchstr8 download
|
||||||
blockchain: coverage run -p --source={envsitepackagesdir}/lbry -m unittest discover -vv integration.blockchain {posargs}
|
blockchain: coverage run -p --source={envsitepackagesdir}/lbry -m unittest discover -vv integration.blockchain {posargs}
|
||||||
datanetwork: coverage run -p --source={envsitepackagesdir}/lbry -m unittest discover -vv integration.datanetwork {posargs}
|
datanetwork: coverage run -p --source={envsitepackagesdir}/lbry -m unittest discover -vv integration.datanetwork {posargs}
|
||||||
|
|
Loading…
Reference in a new issue