jnfilter @ 5e00f7eb42f2c533bd0b99acba5a2b8b0e9829fb

feat: Adiocina processo na pipeline para gerar rpm

Esse vai ser a forma padrao de dar deploy no `gabrielgio.me`.
  1diff --git a/.build.yml b/.build.yml
  2new file mode 100644
  3index 0000000000000000000000000000000000000000..79061c07b418b51fca6e40280287bbd2a97c4f15
  4--- /dev/null
  5+++ b/.build.yml
  6@@ -0,0 +1,24 @@
  7+image: fedora/36
  8+packages:
  9+  - rsync
 10+  - make
 11+
 12+secrets:
 13+  - 008c4f67-b864-47f8-9790-cd32f2ae8516
 14+
 15+environment:
 16+  deploy: builds@gabrielgio.me
 17+
 18+tasks:
 19+  - deps: |
 20+      cd jnfilter
 21+      make install_deps
 22+  - build: |
 23+      cd jnfilter
 24+      make
 25+  - deploy: |
 26+      cd jnfilter
 27+      sshopts="ssh -o StrictHostKeyChecking=no"
 28+      rsync --rsh="$sshopts" -rP dist/*.rpm $deploy:/var/www/artifacs.gabrielgio.me/jnfilter/
 29+
 30+
 31diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
 32deleted file mode 100644
 33index 23dbe2b00365b80eac50f2e76b77ea70ac45796b..0000000000000000000000000000000000000000
 34--- a/.gitlab-ci.yml
 35+++ /dev/null
 36@@ -1,14 +0,0 @@
 37-pages:
 38-  image:
 39-    name: pandoc/alpine
 40-    entrypoint:
 41-      - ""
 42-  stage: build
 43-  script:
 44-    - mkdir public
 45-    - pandoc -s --include-in-header=docs/bamboo.min.css -s README.md -o public/index.html
 46-  artifacts:
 47-    paths:
 48-      - public
 49-  only:
 50-    - master
 51diff --git a/Makefile b/Makefile
 52new file mode 100644
 53index 0000000000000000000000000000000000000000..ed3ae00513fdc9488283866254e4160dd8110dc4
 54--- /dev/null
 55+++ b/Makefile
 56@@ -0,0 +1,15 @@
 57+
 58+rpm: rpm_dist
 59+	rpmbuild -bb \
 60+		./build/bdist.linux-x86_64/rpm/SPECS/jnfilter.spec \
 61+		--define "_topdir $(PWD)/build/bdist.linux-x86_64/rpm/"
 62+
 63+rpm_dist:
 64+	python setup.py bdist_rpm
 65+
 66+clean:
 67+	python setup.py clean --all
 68+	rm -rf dist jnfilter.egg-info
 69+
 70+install_deps:
 71+	dnf install -y rpmdevtools rpmlint python
 72diff --git a/main.py b/jnfilter/main.py
 73rename from main.py
 74rename to jnfilter/main.py
 75index 1f909b0b8e5a89fb1241094d1ad906469c8968fd..9795b8cd1f470689f01eafc7e8f1af3092295c9c 100644
 76--- a/main.py
 77+++ b/jnfilter/main.py
 78@@ -1,11 +1,13 @@
 79 import re
 80+import httpx
 81+import uvicorn
 82+
 83 from functools import reduce
 84 from typing import List, Iterator
 85 from xml.etree.ElementTree import ElementTree, fromstring, tostring, register_namespace
 86-
 87-import httpx
 88 from fastapi import FastAPI
 89 from starlette.responses import Response, PlainTextResponse
 90+
 91 
 92 app = FastAPI()
 93 
 94@@ -87,3 +89,6 @@
 95 @app.get("/series")
 96 async def titles():
 97     return [i[0] for i in RegexCollection.items()]
 98+
 99+def run():
100+    uvicorn.run(app=app, host="0.0.0.0", port=32000)
101diff --git a/requirements.txt b/requirements.txt
102deleted file mode 100644
103index 092f079d3dd2bf9c4e743c7681767edc87b415b5..0000000000000000000000000000000000000000
104--- a/requirements.txt
105+++ /dev/null
106@@ -1,3 +0,0 @@
107-httpx==0.21.1
108-fastapi==0.70.0
109-uvicorn==0.15.0
110diff --git a/setup.py b/setup.py
111new file mode 100644
112index 0000000000000000000000000000000000000000..96868e598f0a49eedf64aa4fa9bf060539da141f
113--- /dev/null
114+++ b/setup.py
115@@ -0,0 +1,23 @@
116+from setuptools import setup
117+
118+requirements = [
119+    'httpx==0.21.1',
120+    'fastapi==0.70.0',
121+    'uvicorn==0.15.0'
122+]
123+
124+
125+setup(name='jnfilter',
126+    version='0.2.0',
127+    description='A FastAPI server to filter Nercast podcast feed',
128+    url='https://git.sr.ht/~gabrielgio/jnfilter',
129+    author='Gabriel Arakaki Giovanini',
130+    author_email='mail@gabrielgio.me',
131+    license='MIT',
132+    packages=['jnfilter'],
133+    entry_points="""
134+    [console_scripts]
135+    jnfilterd=jnfilter.main:run
136+    """,
137+    install_requires=requirements,
138+    zip_safe=False)
139diff --git a/test/dev-requirements.txt b/test/dev-requirements.txt
140new file mode 100644
141index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
142Binary files /dev/null and b/test/dev-requirements.txt differ
143diff --git a/test/test_main.py b/test/test_main.py
144new file mode 100644
145index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
146Binary files /dev/null and b/test/test_main.py differ