Skip to content

Commit 12d9a32

Browse files
committed
Merge branch 'master' into release
2 parents 5d8010e + 10a3493 commit 12d9a32

96 files changed

Lines changed: 6736 additions & 2591 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Builds on all branches & PRs
22
# Deploys to PyPi on new tags.
3-
name: Build, test and publish
3+
name: Build and publish
44

55
on: [ push, pull_request ]
66

@@ -11,7 +11,7 @@ jobs:
1111
steps:
1212
# For tags we assume the version in setup.py is correct!
1313
- name: Checkout
14-
uses: actions/checkout@v4
14+
uses: actions/checkout@v6
1515
with:
1616
submodules: 'recursive'
1717
- name: Rewrite version for dev if not tag
@@ -22,15 +22,15 @@ jobs:
2222
run: |
2323
echo "PACKAGE_VERSION=$(tomlq '.project.version' pyproject.toml -r)" >> $GITHUB_ENV
2424
- name: Set up Python 3.12
25-
uses: actions/setup-python@v5
25+
uses: actions/setup-python@v6
2626
with:
2727
python-version: 3.12
2828
- name: Build wheels
2929
run: |
3030
python3 -m pip install --upgrade pip build
3131
python3 -m build
3232
- name: Upload wheels
33-
uses: actions/upload-artifact@v4
33+
uses: actions/upload-artifact@v5
3434
with:
3535
name: wheels
3636
path: dist/*.whl
@@ -41,11 +41,11 @@ jobs:
4141
name: Deploy wheels to PyPI
4242
steps:
4343
- name: Download wheels
44-
uses: actions/download-artifact@v4
44+
uses: actions/download-artifact@v6
4545
with:
4646
name: wheels
4747
- name: Set up Python 3.12
48-
uses: actions/setup-python@v5
48+
uses: actions/setup-python@v6
4949
with:
5050
python-version: 3.12
5151
- name: Upgrade pip

.github/workflows/linting.yml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Linting, formatting, type checks
2+
name: Linting
3+
4+
on:
5+
push:
6+
branches:
7+
- master
8+
- release
9+
tags:
10+
- "*"
11+
pull_request: { }
12+
13+
jobs:
14+
linting:
15+
runs-on: ubuntu-latest
16+
name: Linting
17+
steps:
18+
- uses: actions/checkout@v6
19+
with:
20+
submodules: 'recursive'
21+
- name: Set up Python 3.11
22+
uses: actions/setup-python@v6
23+
with:
24+
python-version: "3.11"
25+
- name: Install dependencies
26+
run: |
27+
python -m pip install --upgrade pip
28+
pip install -r requirements.txt
29+
- name: Lint with ruff
30+
run: ruff check --output-format=github .
31+
32+
code-formatting:
33+
runs-on: ubuntu-latest
34+
name: Code Format
35+
steps:
36+
- uses: actions/checkout@v6
37+
with:
38+
submodules: 'recursive'
39+
- name: Set up Python 3.11
40+
uses: actions/setup-python@v6
41+
with:
42+
python-version: "3.11"
43+
- name: Install dependencies
44+
run: |
45+
python -m pip install --upgrade pip setuptools
46+
pip install -r requirements.txt
47+
- name: Check with ruff
48+
run: ruff format --check .
49+
50+
typechecks:
51+
runs-on: ubuntu-latest
52+
name: Type Checks
53+
strategy:
54+
fail-fast: false
55+
matrix:
56+
python-version: [ "3.11", "3.12", "3.13" ]
57+
steps:
58+
- uses: actions/checkout@v6
59+
with:
60+
submodules: 'recursive'
61+
- name: Set up Python ${{ matrix.python-version }}
62+
uses: actions/setup-python@v6
63+
with:
64+
python-version: ${{ matrix.python-version }}
65+
- name: Install dependencies
66+
run: |
67+
python -m pip install --upgrade pip setuptools
68+
pip install -r requirements.txt
69+
- name: Run type checks
70+
run: |
71+
mypy --config-file pyproject.toml --junit-xml mypy-${{ matrix.python-version }}.xml .
72+
- name: Upload Unit Test Results
73+
if: always()
74+
uses: actions/upload-artifact@v5
75+
with:
76+
name: MyPy Test Results (Python ${{ matrix.python-version }})
77+
path: mypy-${{ matrix.python-version }}.xml
78+
79+
test-event-file:
80+
name: "Publish Test Results Event File"
81+
runs-on: ubuntu-latest
82+
steps:
83+
- name: Upload
84+
uses: actions/upload-artifact@v5
85+
with:
86+
name: Event File
87+
path: ${{ github.event_path }}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Test Results
2+
3+
on:
4+
workflow_run:
5+
workflows:
6+
- Test
7+
types:
8+
- completed
9+
permissions: { }
10+
11+
jobs:
12+
test-results:
13+
name: Test Results
14+
runs-on: ubuntu-latest
15+
if: github.event.workflow_run.conclusion != 'skipped'
16+
17+
permissions:
18+
checks: write
19+
pull-requests: write
20+
actions: read
21+
22+
steps:
23+
- name: Download and Extract Artifacts
24+
uses: dawidd6/action-download-artifact@v11
25+
with:
26+
run_id: ${{ github.event.workflow_run.id }}
27+
path: artifacts
28+
29+
- name: Publish Test Results
30+
uses: EnricoMi/publish-unit-test-result-action@v2
31+
with:
32+
commit: ${{ github.event.workflow_run.head_sha }}
33+
event_file: artifacts/Event File/event.json
34+
event_name: ${{ github.event.workflow_run.event }}
35+
files: "artifacts/**/*.xml"

.github/workflows/test.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Test
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- release
8+
- version/*
9+
tags:
10+
- "*"
11+
pull_request: { }
12+
13+
jobs:
14+
test:
15+
runs-on: ubuntu-latest
16+
name: Run tests
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
python-version: [ "3.11", "3.12", "3.13", "3.14" ]
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v6
24+
with:
25+
submodules: 'recursive'
26+
- name: Set up Python ${{ matrix.python-version }}
27+
uses: actions/setup-python@v6
28+
with:
29+
python-version: ${{ matrix.python-version }}
30+
- name: Install Python dependencies
31+
run: |
32+
python -m pip install --upgrade pip setuptools
33+
pip install tox tox-gh-actions
34+
- name: Set up QEMU
35+
uses: docker/setup-qemu-action@v3
36+
- name: Set up Docker Buildx
37+
uses: docker/setup-buildx-action@v3
38+
- name: Build integration test image
39+
uses: docker/build-push-action@v6
40+
with:
41+
context: riptide/tests/docker_image
42+
push: false
43+
tags: riptide_integration_test
44+
load: true
45+
env:
46+
DOCKER_BUILD_SUMMARY: "false"
47+
DOCKER_BUILD_RECORD_UPLOAD: "false"
48+
- name: Install system dependencies
49+
run: >-
50+
sudo apt-get install -y build-essential libcap-dev libffi-dev
51+
- name: Test with tox
52+
run: tox
53+
- run: mv test_reports/all.xml test_reports/pytest-${{ matrix.python-version }}.xml
54+
- name: Upload Test Results
55+
if: always()
56+
uses: actions/upload-artifact@v5
57+
with:
58+
name: "Pytest Test Results (Python ${{ matrix.python-version }})"
59+
path: test_reports/pytest-${{ matrix.python-version }}.xml
60+
61+
62+
test-event-file:
63+
name: "Publish Test Results Event File"
64+
runs-on: ubuntu-latest
65+
steps:
66+
- name: Upload
67+
uses: actions/upload-artifact@v5
68+
with:
69+
name: Event File
70+
path: ${{ github.event_path }}

MANIFEST.in

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
graft riptide/assets
1+
graft riptide/assets
2+
graft riptide/tests/fixtures
3+
recursive-include riptide py.typed

README.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<h1>
2+
<picture>
3+
<source media="(prefers-color-scheme: dark)" srcset="https://riptide-docs.readthedocs.io/en/latest/_images/logo_dark.png">
4+
<img alt="Riptide" src="https://riptide-docs.readthedocs.io/en/latest/_images/logo.png" width="300">
5+
</picture>
6+
</h1>
7+
8+
[<img src="https://img.shields.io/github/actions/workflow/status/theCapypara/riptide-lib/build.yml" alt="Build Status">](https://github.com/theCapypara/riptide-lib/actions)
9+
[<img src="https://readthedocs.org/projects/riptide-docs/badge/?version=latest" alt="Documentation Status">](https://riptide-docs.readthedocs.io/en/latest/)
10+
[<img src="https://img.shields.io/pypi/v/riptide-lib" alt="Version">](https://pypi.org/project/riptide-lib/)
11+
[<img src="https://img.shields.io/pypi/dm/riptide-lib" alt="Downloads">](https://pypi.org/project/riptide-lib/)
12+
<img src="https://img.shields.io/pypi/l/riptide-lib" alt="License (MIT)">
13+
<img src="https://img.shields.io/pypi/pyversions/riptide-lib" alt="Supported Python versions">
14+
15+
Riptide is a set of tools to manage development environments for web applications.
16+
It's using container virtualization tools, such as [Docker](https://www.docker.com/)
17+
to run all services needed for a project.
18+
19+
Its goal is to be easy to use by developers.
20+
Riptide abstracts the virtualization in such a way that the environment behaves exactly
21+
as if you were running it natively, without the need to install any other requirements
22+
the project may have.
23+
24+
Riptide consists of a few repositories, find the
25+
entire [overview](https://riptide-docs.readthedocs.io/en/latest/development.html) in the documentation.
26+
27+
## Library Package
28+
29+
This repository contains the library with common code for the Riptide CLI and the Riptide Proxy. Most notably it
30+
contains the interfaces for engine implementations and database drivers and classes for all of the configuration
31+
entities
32+
(Apps, Projects, Services, Commands...).
33+
34+
It can be installed via pip by installing `riptide-lib`.
35+
36+
## Tests
37+
38+
Inside the `riptide.tests package` are unit tests for the library and integration tests. The integration
39+
tests require you to install at least one engine implementation (eg. `riptide-engine-docker`). The integration
40+
tests test the Riptide Library itself and the specific engine implementations.
41+
42+
To run the tests, see `run_tests.sh`.
43+
44+
## Documentation
45+
46+
The complete documentation for Riptide can be found at [Read the Docs](https://riptide-docs.readthedocs.io/en/latest/).

README.rst

Lines changed: 0 additions & 86 deletions
This file was deleted.

0 commit comments

Comments
 (0)