-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 3364a56
Showing
7 changed files
with
1,059 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" | ||
- package-ecosystem: "pip" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,189 @@ | ||
--- | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- "main" | ||
pull_request: | ||
|
||
jobs: | ||
format: | ||
name: Ensure code is properly formatted | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.x' | ||
- uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pypoetry/virtualenvs | ||
key: poetry-${{ hashFiles('poetry.lock') }} | ||
|
||
- run: | | ||
pip install --upgrade poetry | ||
poetry install | ||
poetry run black --check --diff . | ||
ci: | ||
name: Run the integration tests | ||
runs-on: "ubuntu-latest" | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python_version: ["3.11", "3.12"] | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.python_version }} | ||
|
||
- uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pypoetry/virtualenvs | ||
key: poetry-${{ hashFiles('poetry.lock') }} | ||
|
||
- run: pip install --upgrade poetry | ||
|
||
- run: | | ||
poetry install | ||
poetry run pytest -vv | ||
- name: Upload coverage to Codecov | ||
uses: codecov/codecov-action@v3 | ||
with: | ||
fail_ci_if_error: true | ||
|
||
build: | ||
name: Build the package | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.x" | ||
- uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pypoetry/virtualenvs | ||
key: poetry-${{ hashFiles('poetry.lock') }} | ||
|
||
- name: Run the build | ||
run: | | ||
pip install --upgrade poetry | ||
poetry install | ||
poetry build | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: wheel | ||
path: dist/rpm_spec_language_server*whl | ||
if-no-files-found: error | ||
|
||
install: | ||
name: Install the package | ||
runs-on: ${{ matrix.os_version }} | ||
needs: build | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python_version: ["3.11", "3.12"] | ||
|
||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.python_version }} | ||
|
||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: wheel | ||
path: dist | ||
|
||
- name: install the wheel | ||
run: pip install --user dist/rpm_spec_language_server*whl | ||
|
||
- name: run a smoke test that the package has been installed | ||
run: python -c "import rpm_spec_language_server; print(rpm_spec_language_server.__name__)" | ||
|
||
documentation: | ||
name: Build the documentation | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.x' | ||
|
||
- uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pypoetry/virtualenvs | ||
key: poetry-${{ hashFiles('poetry.lock') }} | ||
|
||
- run: pip install --upgrade poetry | ||
|
||
- run: | | ||
poetry install | ||
poetry run sphinx-build -M html source build -W | ||
- name: upload the build directory | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: build | ||
path: ./build/html | ||
|
||
deploy: | ||
name: deploy to the gh-pages branch | ||
runs-on: ubuntu-latest | ||
needs: documentation | ||
if: github.ref == 'refs/heads/main' | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: build | ||
path: ./build | ||
|
||
- run: touch ./build/.nojekyll | ||
|
||
- name: deploy to github pages | ||
uses: JamesIves/github-pages-deploy-action@v4 | ||
with: | ||
branch: gh-pages | ||
folder: build | ||
|
||
lint: | ||
name: Lint the source code | ||
runs-on: ubuntu-latest | ||
needs: build | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
# FIXME: temporary fix to python 3.11 to avoid a: | ||
# AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'? | ||
# when launching pylint with python 3.12 | ||
python-version: '3.11' | ||
|
||
- uses: actions/cache@v3 | ||
with: | ||
path: ~/.cache/pypoetry/virtualenvs | ||
key: poetry-${{ hashFiles('poetry.lock') }} | ||
|
||
- run: | | ||
pip install --upgrade poetry | ||
poetry install | ||
# grab the previously built wheel for checking with twine | ||
# FIXME: implement twine check | ||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: wheel | ||
path: dist | ||
|
||
- run: poetry run mypy rpm_spec_language_server/ |
Empty file.
Oops, something went wrong.