diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..d2de0afdd --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,95 @@ +version: 2 +jobs: + build: + docker: + - image: circleci/python:3.9.1 + + working_directory: ~/repo + + steps: + - checkout + + - restore_cache: + keys: + - v3-dependencies-{{ checksum "requirements.txt" }} + - v3-dependencies- + + - run: + name: install apt-transport-https + command: | + sudo apt-get update + sudo apt-get install apt-transport-https + + - run: + name: install dotnet + command: | + # see https://dotnet.microsoft.com/download/linux-package-manager/debian9/sdk-current + wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg + sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/ + wget -q https://packages.microsoft.com/config/debian/9/prod.list + sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list + sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg + sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list + sudo apt-get update + sudo apt-get install dotnet-sdk-5.0 + sudo apt-get install aspnetcore-runtime-5.0 + sudo apt-get install dotnet-runtime-5.0 + + - run: + name: dotnet info + command: | + dotnet --info + + - run: + name: Install 7z, unrar + command: | + sudo apt-get install -y p7zip-full + + - run: + name: install dependencies + command: | + python3 -m venv venv + . venv/bin/activate + python3 -m pip install -r requirements.txt + + - save_cache: + paths: + - ./venv + key: v3-dependencies-{{ checksum "requirements.txt" }} + + - run: + name: build pythonnet + command: | + . venv/bin/activate + export DOTNET_CLI_TELEMETRY_OPTOUT=1 + python3 setup.py build_dotnet + python3 setup.py bdist_wheel + python3 setup.py develop + + - run: + name: check installation + command: | + python3 -m venv venv + . venv/bin/activate + python -c "import clr" + + - run: + name: unittests + command: | + python3 -m venv venv + . venv/bin/activate + pytest + dotnet test src/embed_tests/ + + - run: + name: wheel + command: | + . venv/bin/activate + export DOTNET_CLI_TELEMETRY_OPTOUT=1 + python3 setup.py bdist_wheel + mkdir -p test-reports/dist + cp dist/*.whl test-reports/dist + + - store_artifacts: + path: test-reports + destination: test-reports