Skip to content

Commit

Permalink
Merge pull request #666 from hvac/github_actions
Browse files Browse the repository at this point in the history
Replace Travis CI w/ GitHub actions
  • Loading branch information
jeffwecan committed Feb 1, 2021
2 parents 669cb9e + e334401 commit fd80daa
Show file tree
Hide file tree
Showing 15 changed files with 128 additions and 161 deletions.
41 changes: 41 additions & 0 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Test

on:
push:
branches: [ develop ]
pull_request:
branches: [ develop ]

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.6]
vault-version: [1.3.10, 1.4.7, 1.5.7, 1.6.2]
steps:
- uses: actions/checkout@v2

- uses: codecov/codecov-action@v1
with:
fail_ci_if_error: true
verbose: true

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
tests/scripts/install-consul.sh
tests/scripts/install-vault.sh ${{ matrix.vault-version }} enterprise
pip install -r requirements-dev.txt
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Lint with flake8
run: flake8 . --count --exit-zero --statistics

- name: Test with pytest
run: pytest --cov=hvac tests/
28 changes: 28 additions & 0 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Upload Python Package

on:
release:
types: [created]

jobs:
deploy:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
/build
/dist
/*.egg-info
/.tox
test/*.log
/.coverage
/cover
Expand Down
48 changes: 0 additions & 48 deletions .travis.yml

This file was deleted.

2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ DOCUMENTATION UPDATES:

MISCELLANEOUS:

* Note: Starting after release 0.7.0, `develop` is the main integration branch for the hvac project. The `master` branch is now intended to capture the state of the most recent release.
* Note: Starting after release 0.7.0, `develop` is the main integration branch for the hvac project. The `main` branch is now intended to capture the state of the most recent release.
* Test cases for hvac are no longer included in the release artifacts published to PyPi. [GH-334](https://github.com/hvac/hvac/pull/334)
* The `create_or_update_policy` system backend method now supports a "pretty_print" argument for different JSON formatting. This allows create more viewable policy documents when retrieve existing policies (e.g., from within the Vault UI interface). [GH-342](https://github.com/hvac/hvac/pull/342)
* Explicit support for Vault v0.8.3 dropped. CI/CD tests updated to run against Vault v1.0.0. [GH-344](https://github.com/hvac/hvac/pull/344)
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ Due to the close connection between this module and HashiCorp Vault versions, br
```
git commit CHANGELOG.md -m "Changelog updates for v$(grep -oP '(?<=current_version = ).*' .bumpversion.cfg)"
```
- [ ] Git push the updated develop branch (`git push`) and open a PR to rebase merge the develop branch into master: [https://github.com/hvac/hvac/compare/master...develop](https://github.com/hvac/hvac/compare/master...develop). Ensure the PR has the "release" label applied and then merge it.
- [ ] Git push the updated develop branch (`git push`) and open a PR to rebase merge the develop branch into main: [https://github.com/hvac/hvac/compare/main...develop](https://github.com/hvac/hvac/compare/main...develop). Ensure the PR has the "release" label applied and then merge it.

- [ ] Publish the draft release on GitHub: [https://github.com/hvac/hvac/releases](https://github.com/hvac/hvac/releases). Ensure the tag is set to the release name (e.g., vX.X.X) and the target is the master branch.
- [ ] Publish the draft release on GitHub: [https://github.com/hvac/hvac/releases](https://github.com/hvac/hvac/releases). Ensure the tag is set to the release name (e.g., vX.X.X) and the target is the main branch.
NOTE: [release-drafter](https://github.com/toolmantim/release-drafter) sets the release name by default. If performing a minor or major update, these values will need to be manually updated before publishing the draft release subsequently.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ REQUIREMENTS_FILES := requirements requirements-dev
.PHONY: clean package publish test update-all-requirements $(addsuffix .txt, $(REQUIREMENTS_FILES)) docs/requirements.txt

test:
tox
pytest --cov=hvac tests/

clean:
rm -rf dist hvac.egg-info

distclean: clean
rm -rf build .tox
rm -rf build

package:
python setup.py sdist bdist_wheel
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# hvac

![Header image](https://raw.githubusercontent.com/hvac/hvac/master/docs/_static/hvac_logo_800px.png)
![Header image](https://raw.githubusercontent.com/hvac/hvac/main/docs/_static/hvac_logo_800px.png)

[HashiCorp](https://hashicorp.com/) [Vault](https://www.vaultproject.io) API client for Python 2.7/3.x
[HashiCorp](https://hashicorp.com/) [Vault](https://www.vaultproject.io) API client for Python 3.x

[![Travis CI](https://travis-ci.org/hvac/hvac.svg?branch=master)](https://travis-ci.org/hvac/hvac)
[![codecov](https://codecov.io/gh/hvac/hvac/branch/master/graph/badge.svg)](https://codecov.io/gh/hvac/hvac)
[![GitHub actions badge](https://github.com/hvac/hvac/workflows/Test/badge.svg?branch=main)](https://github.com/hvac/hvac/actions)
[![codecov](https://codecov.io/gh/hvac/hvac/branch/main/graph/badge.svg)](https://codecov.io/gh/hvac/hvac)
[![Documentation Status](https://readthedocs.org/projects/hvac/badge/)](https://hvac.readthedocs.io/en/latest/?badge=latest)
[![PyPI version](https://badge.fury.io/py/hvac.svg)](https://badge.fury.io/py/hvac)
[![Twitter - @python_hvac](https://img.shields.io/twitter/follow/python_hvac.svg?label=Twitter%20-%20@python_hvac&style=social?style=plastic)](https://twitter.com/python_hvac)
[![Gitter chat](https://badges.gitter.im/hvac/community.png)](https://gitter.im/hvac/community)

Tested against the latest release, HEAD ref, and 3 previous minor versions (counting back from the latest release) of Vault.
Current official support covers Vault v1.2.4 or later.
Current official support covers Vault v1.3.10 or later.

## Installation

Expand Down
1 change: 0 additions & 1 deletion docs/requirements.in
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
-r ../requirements-dev.txt
-r ../requirements.txt
autodocsumm
m2r2
sphinx
Expand Down
51 changes: 21 additions & 30 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,59 +5,54 @@
# pip-compile --output-file=docs/requirements.txt docs/requirements.in
#
alabaster==0.7.12 # via sphinx
appdirs==1.4.4 # via -r docs/../requirements-dev.txt, virtualenv
attrs==20.3.0 # via -r docs/../requirements-dev.txt, pytest
authlib==0.14.3 # via -r docs/../requirements-dev.txt
autodocsumm==0.1.13 # via -r docs/requirements.in
babel==2.8.0 # via sphinx
certifi==2020.6.20 # via -r docs/../requirements-dev.txt, -r docs/../requirements.txt, requests
certifi==2020.6.20 # via -r docs/../requirements-dev.txt, requests
cffi==1.14.0 # via -r docs/../requirements-dev.txt, cryptography
chardet==3.0.4 # via -r docs/../requirements-dev.txt, -r docs/../requirements.txt, requests
chardet==3.0.4 # via -r docs/../requirements-dev.txt, requests
click==7.1.2 # via -r docs/../requirements-dev.txt, flask
codecov==2.1.8 # via -r docs/../requirements-dev.txt
configparser==4.0.2 # via -r docs/../requirements-dev.txt
contextlib2==0.6.0.post1 # via -r docs/../requirements-dev.txt
coverage==5.2.1 # via -r docs/../requirements-dev.txt, codecov
cryptography==1.7.2 # via -r docs/../requirements-dev.txt, authlib, jwcrypto
distlib==0.3.1 # via -r docs/../requirements-dev.txt, virtualenv
coverage==5.2.1 # via -r docs/../requirements-dev.txt, codecov, pytest-cov
cryptography==3.3.1 # via -r docs/../requirements-dev.txt, authlib, jwcrypto
docutils==0.16 # via m2r2, sphinx
enum34==1.1.10 # via -r docs/../requirements-dev.txt
filelock==3.0.12 # via -r docs/../requirements-dev.txt, tox, virtualenv
flake8==3.8.4 # via -r docs/../requirements-dev.txt
flask-sqlalchemy==2.4.4 # via -r docs/../requirements-dev.txt
flask==1.1.2 # via -r docs/../requirements-dev.txt, flask-sqlalchemy
funcsigs==1.0.2 # via -r docs/../requirements-dev.txt
idna==2.10 # via -r docs/../requirements-dev.txt, -r docs/../requirements.txt, cryptography, requests
idna==2.10 # via -r docs/../requirements-dev.txt, requests
imagesize==1.2.0 # via sphinx
importlib-metadata==1.7.0 # via -r docs/../requirements-dev.txt
importlib-resources==3.0.0 # via -r docs/../requirements-dev.txt
iniconfig==1.1.1 # via -r docs/../requirements-dev.txt, pytest
ipaddress==1.0.23 # via -r docs/../requirements-dev.txt
itsdangerous==1.1.0 # via -r docs/../requirements-dev.txt, flask
jinja2==2.11.2 # via -r docs/../requirements-dev.txt, flask, sphinx
jwcrypto==0.7 # via -r docs/../requirements-dev.txt, python-jwt
m2r2==0.2.5 # via -r docs/requirements.in
markupsafe==1.1.1 # via -r docs/../requirements-dev.txt, jinja2
mccabe==0.6.1 # via -r docs/../requirements-dev.txt, flake8
mistune==0.8.4 # via m2r2
mock==3.0.5 # via -r docs/../requirements-dev.txt
nose==1.3.7 # via -r docs/../requirements-dev.txt
packaging==20.4 # via -r docs/../requirements-dev.txt, sphinx, tox
packaging==20.4 # via -r docs/../requirements-dev.txt, pytest, sphinx
parameterized==0.7.4 # via -r docs/../requirements-dev.txt
pathlib2==2.3.5 # via -r docs/../requirements-dev.txt
pluggy==0.13.1 # via -r docs/../requirements-dev.txt, tox
pluggy==0.13.1 # via -r docs/../requirements-dev.txt, pytest
py4j==0.10.9 # via -r docs/../requirements-dev.txt, python-ldap-test
py==1.9.0 # via -r docs/../requirements-dev.txt, tox
pyasn1==0.4.8 # via -r docs/../requirements-dev.txt, cryptography
py==1.9.0 # via -r docs/../requirements-dev.txt, pytest
pycodestyle==2.6.0 # via -r docs/../requirements-dev.txt, flake8
pycparser==2.20 # via -r docs/../requirements-dev.txt, cffi
pyflakes==2.2.0 # via -r docs/../requirements-dev.txt, flake8
pygments==2.6.1 # via sphinx
pyhcl==0.4.4 # via -r docs/../requirements.txt
pyhcl==0.4.4 # via -r docs/../requirements-dev.txt
pyparsing==2.4.7 # via -r docs/../requirements-dev.txt, packaging
pytest-cov==2.11.1 # via -r docs/../requirements-dev.txt
pytest==6.2.2 # via -r docs/../requirements-dev.txt, pytest-cov
python-jwt==3.2.6 # via -r docs/../requirements-dev.txt
python-ldap-test==0.3.1 # via -r docs/../requirements-dev.txt
pytz==2020.1 # via babel
requests-mock==1.8.0 # via -r docs/../requirements-dev.txt
requests==2.24.0 # via -r docs/../requirements-dev.txt, -r docs/../requirements.txt, codecov, requests-mock, sphinx
scandir==1.10.0 # via -r docs/../requirements-dev.txt
requests==2.24.0 # via -r docs/../requirements-dev.txt, codecov, requests-mock, sphinx
semantic-version==2.8.5 # via -r docs/../requirements-dev.txt
singledispatch==3.4.0.3 # via -r docs/../requirements-dev.txt
six==1.15.0 # via -r docs/../requirements-dev.txt, -r docs/../requirements.txt, cryptography, mock, packaging, pathlib2, requests-mock, singledispatch, tox, virtualenv
six==1.15.0 # via -r docs/../requirements-dev.txt, cryptography, mock, packaging, requests-mock
snowballstemmer==2.0.0 # via sphinx
sphinx-rtd-theme==0.5.0 # via -r docs/requirements.in
sphinx==3.1.2 # via -r docs/requirements.in, autodocsumm, sphinx-rtd-theme
Expand All @@ -68,13 +63,9 @@ sphinxcontrib-jsmath==1.0.1 # via sphinx
sphinxcontrib-qthelp==1.0.3 # via sphinx
sphinxcontrib-serializinghtml==1.1.4 # via sphinx
sqlalchemy==1.3.18 # via -r docs/../requirements-dev.txt, flask-sqlalchemy
toml==0.10.1 # via -r docs/../requirements-dev.txt, tox
tox==3.18.0 # via -r docs/../requirements-dev.txt
typing==3.5.3.0 # via -r docs/../requirements-dev.txt
urllib3==1.25.10 # via -r docs/../requirements-dev.txt, -r docs/../requirements.txt, requests
virtualenv==20.0.28 # via -r docs/../requirements-dev.txt, tox
toml==0.10.1 # via -r docs/../requirements-dev.txt, pytest
urllib3==1.25.10 # via -r docs/../requirements-dev.txt, requests
werkzeug==1.0.1 # via -r docs/../requirements-dev.txt, flask
zipp==1.2.0 # via -r docs/../requirements-dev.txt, importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# setuptools
5 changes: 4 additions & 1 deletion requirements-dev.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
-r ./requirements.txt
Authlib
flake8
Flask
Flask-SQLAlchemy
codecov
Expand All @@ -7,9 +9,10 @@ ipaddress
mock
nose
parameterized
pytest
pytest-cov
python-ldap-test
python_jwt
requests_mock
semantic_version
tox
Werkzeug
55 changes: 22 additions & 33 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,58 +4,47 @@
#
# pip-compile --output-file=requirements-dev.txt requirements-dev.in
#
appdirs==1.4.4 # via virtualenv
attrs==20.3.0 # via pytest
authlib==0.14.3 # via -r requirements-dev.in
certifi==2020.6.20 # via requests
certifi==2020.6.20 # via -r ./requirements.txt, requests
cffi==1.14.0 # via cryptography
chardet==3.0.4 # via requests
chardet==3.0.4 # via -r ./requirements.txt, requests
click==7.1.2 # via flask
codecov==2.1.8 # via -r requirements-dev.in
configparser==4.0.2 # via importlib-metadata
contextlib2==0.6.0.post1 # via importlib-metadata, importlib-resources, zipp
coverage==5.2.1 # via -r requirements-dev.in, codecov
cryptography==1.7.2 # via authlib, jwcrypto
distlib==0.3.1 # via virtualenv
enum34==1.1.10 # via cryptography
filelock==3.0.12 # via tox, virtualenv
coverage==5.2.1 # via -r requirements-dev.in, codecov, pytest-cov
cryptography==3.3.1 # via authlib, jwcrypto
flake8==3.8.4 # via -r requirements-dev.in
flask-sqlalchemy==2.4.4 # via -r requirements-dev.in
flask==1.1.2 # via -r requirements-dev.in, flask-sqlalchemy
funcsigs==1.0.2 # via mock
idna==2.10 # via cryptography, requests
importlib-metadata==1.7.0 # via pluggy, tox, virtualenv
importlib-resources==3.0.0 # via virtualenv
ipaddress==1.0.23 # via -r requirements-dev.in, cryptography
idna==2.10 # via -r ./requirements.txt, requests
iniconfig==1.1.1 # via pytest
ipaddress==1.0.23 # via -r requirements-dev.in
itsdangerous==1.1.0 # via flask
jinja2==2.11.2 # via flask
jwcrypto==0.7 # via python-jwt
markupsafe==1.1.1 # via jinja2
mccabe==0.6.1 # via flake8
mock==3.0.5 # via -r requirements-dev.in
nose==1.3.7 # via -r requirements-dev.in
packaging==20.4 # via tox
packaging==20.4 # via pytest
parameterized==0.7.4 # via -r requirements-dev.in
pathlib2==2.3.5 # via importlib-metadata, importlib-resources, virtualenv
pluggy==0.13.1 # via tox
pluggy==0.13.1 # via pytest
py4j==0.10.9 # via python-ldap-test
py==1.9.0 # via tox
pyasn1==0.4.8 # via cryptography
py==1.9.0 # via pytest
pycodestyle==2.6.0 # via flake8
pycparser==2.20 # via cffi
pyflakes==2.2.0 # via flake8
pyhcl==0.4.4 # via -r ./requirements.txt
pyparsing==2.4.7 # via packaging
pytest-cov==2.11.1 # via -r requirements-dev.in
pytest==6.2.2 # via -r requirements-dev.in, pytest-cov
python-jwt==3.2.6 # via -r requirements-dev.in
python-ldap-test==0.3.1 # via -r requirements-dev.in
requests-mock==1.8.0 # via -r requirements-dev.in
requests==2.24.0 # via codecov, requests-mock
scandir==1.10.0 # via pathlib2
requests==2.24.0 # via -r ./requirements.txt, codecov, requests-mock
semantic-version==2.8.5 # via -r requirements-dev.in
singledispatch==3.4.0.3 # via importlib-resources
six==1.15.0 # via cryptography, mock, packaging, pathlib2, requests-mock, tox, virtualenv
six==1.15.0 # via -r ./requirements.txt, cryptography, mock, packaging, requests-mock
sqlalchemy==1.3.18 # via flask-sqlalchemy
toml==0.10.1 # via tox
tox==3.18.0 # via -r requirements-dev.in
typing==3.5.3.0 # via importlib-resources
urllib3==1.25.10 # via requests
virtualenv==20.0.28 # via tox
toml==0.10.1 # via pytest
urllib3==1.25.10 # via -r ./requirements.txt, requests
werkzeug==1.0.1 # via -r requirements-dev.in, flask
zipp==1.2.0 # via importlib-metadata, importlib-resources

# The following packages are considered to be unsafe in a requirements file:
# setuptools
2 changes: 1 addition & 1 deletion tests/scripts/install-consul.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set -eux

DEFAULT_CONSUL_VERSION="1.4.0"
DEFAULT_CONSUL_DIRECTORY="${HOME}/bin"
DEFAULT_CONSUL_DIRECTORY="${HOME}/.local/bin"
HVAC_CONSUL_VERSION="${1:-$DEFAULT_CONSUL_VERSION}"
HVAC_CONSUL_DIRECTORY="${2:-$DEFAULT_CONSUL_DIRECTORY}"

Expand Down

0 comments on commit fd80daa

Please sign in to comment.