Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elasticsearch storage backend #25

Draft
wants to merge 404 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
404 commits
Select commit Hold shift + click to select a range
038b4ce
Make import configurable via env var
janheinrichmerker Aug 28, 2023
2a68aa7
Add import to Helm chart
janheinrichmerker Aug 28, 2023
316bfcd
Clarify import
janheinrichmerker Oct 26, 2023
160db4e
Fix version
janheinrichmerker Oct 26, 2023
eabc7f7
Add dependencies
janheinrichmerker Oct 26, 2023
3971366
Add first draft of Warc S3 store
janheinrichmerker Oct 26, 2023
9c68fb0
Add first draft of Warc S3 store
janheinrichmerker Oct 26, 2023
cb402b9
Update IDE config
janheinrichmerker Oct 26, 2023
3f52d59
Add first draft of Warc S3 store
janheinrichmerker Oct 26, 2023
ce55c63
Add first draft of Warc S3 store
janheinrichmerker Nov 1, 2023
60c6bba
Merge branch 'main' into elastic
janheinrichmerker Nov 2, 2023
d98e6d2
Document CDX API wrapper
janheinrichmerker Nov 2, 2023
9834c0b
Add Memento API wrapper
janheinrichmerker Nov 2, 2023
81b38d7
Fix WARC S3 store
janheinrichmerker Nov 2, 2023
2304ea5
Remove FastWARC dependency
janheinrichmerker Nov 2, 2023
678861e
Finalize WARC S3 store
janheinrichmerker Nov 2, 2023
96136bb
Fix code format
janheinrichmerker Nov 2, 2023
8f669a9
Fix code format, LINT, typing, and tests
janheinrichmerker Nov 2, 2023
f60fbba
Disable time delta in monitoring
janheinrichmerker Nov 2, 2023
5ac9fbb
Update Helm chart
janheinrichmerker Nov 2, 2023
13e6537
Fix code format
janheinrichmerker Nov 2, 2023
d27841b
Fix typing
janheinrichmerker Nov 2, 2023
3fc0261
Fix typing
janheinrichmerker Nov 2, 2023
c91db08
Fix CDX API wrapper issue handling
janheinrichmerker Nov 2, 2023
b6abefd
Fix typing
janheinrichmerker Nov 2, 2023
7e137be
Remove broken test WARCs
janheinrichmerker Nov 3, 2023
8895fb6
Explicitly decompress Gzip, fix encoding
janheinrichmerker Nov 3, 2023
fb1bb41
Fix test
janheinrichmerker Nov 3, 2023
8fd5030
Fix workflow permissions
janheinrichmerker Nov 5, 2023
cb42aff
Move web archive APIs and WARC S3 store to separate libs, move compat…
janheinrichmerker Nov 5, 2023
05095fc
Add S3 config
janheinrichmerker Nov 13, 2023
a0045b6
Remove outdated parser
janheinrichmerker Nov 13, 2023
8e8a489
Disable captures import
janheinrichmerker Nov 13, 2023
e38256b
Add monitoring progress
janheinrichmerker Nov 13, 2023
2eaa96e
Disable tests
janheinrichmerker Nov 13, 2023
30631d1
Simplify Helm commands
janheinrichmerker Nov 13, 2023
c072b59
Update Helm chart
janheinrichmerker Nov 13, 2023
54d2886
Update Helm chart
janheinrichmerker Nov 13, 2023
6770ea4
Fix namespaces
janheinrichmerker Nov 13, 2023
a920c25
Disable restriction
janheinrichmerker Nov 13, 2023
d33c2de
Fix code format
janheinrichmerker Nov 13, 2023
794b732
Add URL query parsers command
janheinrichmerker Nov 13, 2023
85f6e4e
Update ORM
janheinrichmerker Nov 13, 2023
56f091d
Add URL page parsers
janheinrichmerker Nov 13, 2023
4a8bfd6
Add URL offset parsers
janheinrichmerker Nov 13, 2023
e107972
Fix Helm config
janheinrichmerker Nov 13, 2023
28fe96e
Fix template
janheinrichmerker Nov 13, 2023
1369c25
Add stats
janheinrichmerker Nov 13, 2023
bd55cf0
Remove invalid parser
janheinrichmerker Nov 13, 2023
648b3aa
Fix monitoring
janheinrichmerker Nov 13, 2023
3501078
Update versions
janheinrichmerker Nov 13, 2023
0987fd7
Fix UI
janheinrichmerker Nov 14, 2023
60f5d99
Improve UI
janheinrichmerker Nov 14, 2023
60b3f20
Make AQL-22 import a cronjob
janheinrichmerker Nov 14, 2023
ee7394c
Update dependency
janheinrichmerker Nov 14, 2023
3d336d9
Remove invalid parsers
janheinrichmerker Nov 14, 2023
5014e4e
Add parsing utils
janheinrichmerker Nov 14, 2023
020c491
Add SERP URL query parsing CLI
janheinrichmerker Nov 14, 2023
0275cec
Rename jobs
janheinrichmerker Nov 14, 2023
901d7c6
Add SERP URL query parsing to Helm chart
janheinrichmerker Nov 14, 2023
5005023
Add last modified timestamp
janheinrichmerker Nov 14, 2023
2adcb7b
Update dependency
janheinrichmerker Nov 14, 2023
ed71346
Add namespace
janheinrichmerker Nov 14, 2023
f3faaa1
Add length to WARC location ORM
janheinrichmerker Nov 14, 2023
351a6a2
Fix start time
janheinrichmerker Nov 14, 2023
1a33fde
Add SERP WARC download CLI
janheinrichmerker Nov 14, 2023
25fede6
Update dependency
janheinrichmerker Nov 15, 2023
47b59c9
Disable WARC S3 logging
janheinrichmerker Nov 15, 2023
387c81c
Fix WARC downloading
janheinrichmerker Nov 15, 2023
4f49572
Fix mapping
janheinrichmerker Nov 15, 2023
d2ecb8d
Simplify SERP URL query parsing
janheinrichmerker Nov 15, 2023
ed5b58c
Add stats
janheinrichmerker Nov 15, 2023
e774e6c
Add parsers modification date
janheinrichmerker Nov 15, 2023
0e1bba5
Update dependency
janheinrichmerker Nov 15, 2023
9f64fe9
Remove invalid parser
janheinrichmerker Nov 15, 2023
861a106
Limit number of records per S3 WARC file
janheinrichmerker Nov 15, 2023
b868269
Update chart
janheinrichmerker Nov 15, 2023
de34b8e
Rename variable
janheinrichmerker Nov 15, 2023
0f5eca3
Rename annotation
janheinrichmerker Nov 15, 2023
8565d86
Downscale cron job completions, enable cron job
janheinrichmerker Nov 15, 2023
8619320
Add WARC download cron job
janheinrichmerker Nov 15, 2023
3d5e8e1
Update chart
janheinrichmerker Nov 15, 2023
56c82e5
Refactor parsers
janheinrichmerker Nov 15, 2023
1451d3d
Add URL page and offset parsers
janheinrichmerker Nov 15, 2023
6b6c070
Fix mappings
janheinrichmerker Nov 15, 2023
125eae0
Fix parser sorting
janheinrichmerker Nov 15, 2023
d466e5b
Add parsing for URL page and offset
janheinrichmerker Nov 15, 2023
c612541
Simplify index initialization
janheinrichmerker Nov 15, 2023
11e0b56
Improve documentation
janheinrichmerker Nov 15, 2023
4d367ce
Fix code format
janheinrichmerker Nov 15, 2023
1350b6f
Merge remote-tracking branch 'origin/main' into elastic
janheinrichmerker Nov 15, 2023
f259655
Update Helm chart
janheinrichmerker Nov 15, 2023
12c9bc4
Add page and offset parsing to Helm chart
janheinrichmerker Nov 15, 2023
866dfe5
Fix parsing
janheinrichmerker Nov 16, 2023
b74b94f
Fix monitoring cache
janheinrichmerker Nov 16, 2023
6100cd7
Add parsing timestamp even if no parser worked
janheinrichmerker Nov 16, 2023
5e14c90
Update Helm chart
janheinrichmerker Nov 16, 2023
2b86769
Update dependency
janheinrichmerker Nov 16, 2023
934c3f6
Fix parsers
janheinrichmerker Nov 16, 2023
c54214c
Update cron job schedules
janheinrichmerker Nov 16, 2023
c007c29
Improve scan efficiency
janheinrichmerker Nov 16, 2023
7e9648b
Decouple CLI and implementations
janheinrichmerker Nov 16, 2023
cda692d
Fix code format and LINT errors
janheinrichmerker Nov 16, 2023
9925ff2
Fix ES helper
janheinrichmerker Nov 18, 2023
f4b41b4
Improve ES bulk helpers
janheinrichmerker Nov 18, 2023
3f9b80c
Add ES helpers
janheinrichmerker Nov 19, 2023
0b4040c
Improve monitoring
janheinrichmerker Nov 19, 2023
c898a18
Remove unnecessary forced index refreshes
janheinrichmerker Nov 19, 2023
ea8f7c7
Use ES bulk API where possible
janheinrichmerker Nov 19, 2023
9c681a9
Fix code
janheinrichmerker Nov 19, 2023
3ae3a74
Fix parsers
janheinrichmerker Nov 19, 2023
668fb0e
Fix update action
janheinrichmerker Nov 19, 2023
e311824
Fix code
janheinrichmerker Nov 19, 2023
ee61f88
Update Helm chart
janheinrichmerker Nov 19, 2023
899359e
Fix monitoring
janheinrichmerker Nov 19, 2023
20162a3
Add WARC parser ORM
janheinrichmerker Nov 19, 2023
f2c4a2b
Add WARC parser namespaces
janheinrichmerker Nov 19, 2023
f8d7f7d
Add WARC parser XML utils
janheinrichmerker Nov 19, 2023
b3188ad
Add WARC parsers
janheinrichmerker Nov 19, 2023
6c5c79b
Add WARC parser import
janheinrichmerker Nov 19, 2023
e5d048f
Add WARC parser index init
janheinrichmerker Nov 19, 2023
8743083
Add SERP WARC parsing CLI
janheinrichmerker Nov 19, 2023
db89ac6
Add dependencies
janheinrichmerker Nov 19, 2023
0063d2d
Add dependencies
janheinrichmerker Nov 19, 2023
cd05ca0
Improve parsers
janheinrichmerker Nov 20, 2023
b92bd74
Fix WARC query parsing
janheinrichmerker Nov 20, 2023
349227c
Fix WARC query parsing
janheinrichmerker Nov 20, 2023
07c5c12
Simplify doc counts
janheinrichmerker Nov 20, 2023
9cb9559
Improve monitoring
janheinrichmerker Nov 20, 2023
e064125
Fix code
janheinrichmerker Nov 20, 2023
e3202ed
Merge remote-tracking branch 'origin/main' into elastic
janheinrichmerker Nov 20, 2023
62b3093
Add WARC query parsing to Helm chart
janheinrichmerker Nov 20, 2023
e1a7464
Increase retries
janheinrichmerker Nov 20, 2023
e97f29a
Count rate limits per host
janheinrichmerker Nov 20, 2023
3eb13ba
Only download WARCs from captures with status 200
janheinrichmerker Nov 20, 2023
d3b2288
Fix building sources
janheinrichmerker Nov 20, 2023
1004485
Fix monitoring
janheinrichmerker Nov 20, 2023
9dd5f41
Add missing filters in monitoring
janheinrichmerker Nov 20, 2023
e1a2e62
Revert "Update urllib3 requirement from ~=1.26 to ~=2.1"
janheinrichmerker Nov 20, 2023
717d379
Update chart
janheinrichmerker Nov 20, 2023
1018489
Fix mapping
janheinrichmerker Nov 20, 2023
a3fd4a7
Fix parser IDs
janheinrichmerker Nov 20, 2023
536b7fd
Decouple warc reading
janheinrichmerker Nov 20, 2023
939deb9
Add text cleaning utils
janheinrichmerker Nov 20, 2023
3cc7498
Simplify WARC query parsing
janheinrichmerker Nov 20, 2023
0443d2c
Add type safe XPath wrapper
janheinrichmerker Nov 20, 2023
871853f
Add WARC snippet parsing
janheinrichmerker Nov 20, 2023
cdddc8a
Improve XPath utils
janheinrichmerker Nov 20, 2023
5eec733
Add WARC snippets parser import
janheinrichmerker Nov 20, 2023
9f5df1a
Remove unsupported parsers
janheinrichmerker Nov 20, 2023
17522f7
Improve CSS selector conversion
janheinrichmerker Nov 20, 2023
d271f60
Add WARC snippets parser CLI
janheinrichmerker Nov 20, 2023
ff091f1
Fix code
janheinrichmerker Nov 20, 2023
fbbbab0
Add WARC snippets parsing CLI
janheinrichmerker Nov 20, 2023
0579449
Add WARC snippets parsing to chart
janheinrichmerker Nov 20, 2023
93817d6
Do not fail on CDX timeouts
janheinrichmerker Nov 21, 2023
c3b5d75
Make absolute XPaths explicit
janheinrichmerker Nov 21, 2023
8141119
Decrease retries
janheinrichmerker Nov 21, 2023
668b157
Fix CLI
janheinrichmerker Nov 21, 2023
d8a95fc
Fix WARC snippets parsing
janheinrichmerker Nov 21, 2023
0696d11
Fix code
janheinrichmerker Nov 21, 2023
d67b9b9
Fix monitoring
janheinrichmerker Nov 21, 2023
83677bd
Update chart
janheinrichmerker Nov 21, 2023
c26951a
Increase scroll duration
janheinrichmerker Nov 21, 2023
140dd17
Fix SERP snippet parsing
janheinrichmerker Nov 21, 2023
3be1dff
Add result WARC location ORM
janheinrichmerker Nov 21, 2023
10b532e
Update dependency
janheinrichmerker Nov 22, 2023
192e84b
Change mapping
janheinrichmerker Nov 22, 2023
ad5afee
Rename variable
janheinrichmerker Nov 22, 2023
283a3c9
Update provider ORM
janheinrichmerker Nov 22, 2023
78cad54
Update provider import and CLI
janheinrichmerker Nov 22, 2023
5a34a3a
Update parser import and CLI
janheinrichmerker Nov 22, 2023
31dc9cf
Add archive priority
janheinrichmerker Nov 23, 2023
5da398f
Propagate archive and provider priorities
janheinrichmerker Nov 23, 2023
ab6a0fd
Prioritize captures fetching
janheinrichmerker Nov 23, 2023
c22adb5
Fix updating documents with score
janheinrichmerker Nov 23, 2023
e7fe5a3
Simplify out-of-date handling
janheinrichmerker Nov 23, 2023
89f901d
Add entries to monitoring, fix progress
janheinrichmerker Nov 23, 2023
f40d0e7
Simplify out-of-date handling
janheinrichmerker Nov 23, 2023
793581e
Prioritize WARC download
janheinrichmerker Nov 23, 2023
d8670c8
Fix WARC parsing
janheinrichmerker Nov 23, 2023
5afd9aa
Update chart
janheinrichmerker Nov 23, 2023
4e74817
Fix code
janheinrichmerker Nov 23, 2023
f3a2170
Fix initializations
janheinrichmerker Nov 24, 2023
34e0cf0
Add results WARC download
janheinrichmerker Nov 24, 2023
27ffc43
Fix code
janheinrichmerker Nov 24, 2023
7485c73
Update documentation
janheinrichmerker Nov 24, 2023
318b692
Update documentation
janheinrichmerker Nov 24, 2023
219684b
Fix parser sorting
janheinrichmerker Nov 24, 2023
a9dcc2e
Update documentation
janheinrichmerker Nov 24, 2023
e77bfb9
Update Helm chart
janheinrichmerker Nov 24, 2023
f84d417
Make parser provider ID optional
janheinrichmerker Nov 24, 2023
2a6e447
Fix offset parser
janheinrichmerker Nov 27, 2023
3c537a7
Prepare main content extraction
janheinrichmerker Nov 27, 2023
130c6f8
Decrease stats cache duration
janheinrichmerker Nov 27, 2023
22ffb26
Add HTML utils
janheinrichmerker Nov 27, 2023
d43a466
Fix parser
janheinrichmerker Nov 27, 2023
48678da
Keep WARC download running on individual connection errors
janheinrichmerker Nov 27, 2023
0c1e68e
Update Helm chart
janheinrichmerker Nov 27, 2023
cc86410
Fix captures fetching
janheinrichmerker Nov 27, 2023
a896479
Fix captures fetching
janheinrichmerker Nov 27, 2023
a642a2d
Fix snippets parser
janheinrichmerker Nov 27, 2023
bc7bf0b
Increase timeout
janheinrichmerker Nov 27, 2023
eeed979
Fix captures fetching
janheinrichmerker Nov 27, 2023
5bd573a
Increase monitoring cache duration
janheinrichmerker Nov 30, 2023
242ad49
Update Helm chart
janheinrichmerker Nov 30, 2023
8dada02
Rename Helm folder
janheinrichmerker Jan 26, 2024
a60cc13
Improve install instructuons
janheinrichmerker Feb 6, 2024
fb3d745
Remove legacy code
janheinrichmerker Feb 6, 2024
3b9e27a
Merge branch 'elastic' of github.com:webis-de/archive-query-log into …
janheinrichmerker Feb 6, 2024
dbc527b
Add Flask dependencies
janheinrichmerker Feb 6, 2024
bc28000
Add main content parser CLI
janheinrichmerker Feb 6, 2024
3fefc0b
Increase shards
janheinrichmerker Feb 6, 2024
130a4d8
Update readme
janheinrichmerker Feb 13, 2024
e156ca4
Add MarkDownLINT config
janheinrichmerker Feb 13, 2024
4174181
Review code security
janheinrichmerker Feb 13, 2024
e029679
Update dependencies
janheinrichmerker Feb 13, 2024
a815982
Fix approvals
janheinrichmerker Feb 13, 2024
b6baac9
Fix approvals
janheinrichmerker Feb 13, 2024
06e8e76
Fix approvals and parsers
janheinrichmerker Feb 13, 2024
a138b1e
Fix approvals and parsers
janheinrichmerker Feb 13, 2024
d8435cc
Improve code checking
janheinrichmerker Feb 13, 2024
6cc0151
Fix CI workflow config
janheinrichmerker Feb 13, 2024
db8802c
Fix type checking
janheinrichmerker Feb 13, 2024
6d28a7a
Simplify Dockerfile
janheinrichmerker Mar 5, 2024
2bfb832
Update Dockerfile
janheinrichmerker Mar 5, 2024
0d61370
Update Dockerfile
janheinrichmerker Mar 5, 2024
83ec503
Merge pull request #40 from webis-de/heinrichreimer-patch-1
janheinrichmerker Mar 5, 2024
d1bbe27
Merge branch 'elastic' into patch-1
janheinrichmerker Mar 5, 2024
85b84bd
Merge pull request #41 from webis-de/patch-1
janheinrichmerker Mar 5, 2024
cf8300e
Cache Docker CI
janheinrichmerker Mar 5, 2024
2cf94c7
build new direct answer parser
JKlueber Mar 23, 2024
615d0f4
added direct answer
JKlueber Mar 23, 2024
d98e59b
Prepare docs
janheinrichmerker Apr 2, 2024
f3f11e8
- removed rank
JKlueber Apr 2, 2024
45ee69d
changed xpaths List[str] to xpath str
JKlueber Apr 4, 2024
dabe86e
changed direct_answer to plural
JKlueber Apr 10, 2024
2da7caa
added direct answers
JKlueber Apr 10, 2024
a7af589
dubugged import
JKlueber Apr 10, 2024
9e62837
added priority
JKlueber Apr 11, 2024
14ddc9a
removed "import_warc_direct_answers_parsers" from CLI
JKlueber Apr 15, 2024
218ae44
Merge pull request #45 from webis-de/direct-answers
JKlueber Apr 15, 2024
948a55e
Merge branch 'elastic' of github.com:webis-de/archive-query-log into …
janheinrichmerker Apr 15, 2024
5eb084c
Fix CLI
janheinrichmerker Apr 15, 2024
6d05c24
build fast api fur aql dashboard
JKlueber Jun 11, 2024
918b251
added comment how to start the api
JKlueber Aug 19, 2024
6eeeae9
Added Vue Dashboard
JKlueber Aug 21, 2024
8368a6e
Update name and email
janheinrichmerker Oct 14, 2024
ca6d807
Merge branch 'elastic' of github.com:webis-de/archive-query-log into …
janheinrichmerker Oct 14, 2024
668de7e
Remove unused code
janheinrichmerker Oct 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
venv
*.egg-info
dist
data
docs
integrations
notebooks
scripts
.gitattributes
.gitignore
config.override.yml
build
.pytest_cache
.github
.idea
*.iml
examples
Dockerfile
coverage.xml
.coverage
312 changes: 226 additions & 86 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,101 +1,241 @@
name: "CI"
name: CI

on:
push:

jobs:
code-format:
name: "🔍 Python code format"
python-build:
name: 🏗️ Build Python wheels
strategy:
matrix:
python:
- '3.10'
runs-on: ubuntu-latest
steps:
- name: "📥 Check-out"
uses: actions/checkout@v4
- name: "🧰 Install Python"
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: pip
cache-dependency-path: pyproject.toml
- name: "🧰 Install Protoc"
run: sudo apt install protobuf-compiler
- name: "🧰 Install dependencies"
run: |
python -m pip install --upgrade pip
pip install .
pip install .[tests]
- name: "🔍 Check Python code format"
run: flake8 archive_query_log/
lint:
name: "🔍 Python Lint"
- name: 📥 Check-out
uses: actions/checkout@v3
- name: 🧰 Install Protoc
run: sudo apt install protobuf-compiler
- name: 🧰 Install Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
cache: pip
cache-dependency-path: pyproject.toml
- name: 🧰 Install dependencies
run: pip install build twine
- name: 🏗️ Build Python wheels
run: python -m build
- name: 🧪 Check package bundles
run: twine check dist/*
- name: 📤 Upload Python wheels
uses: actions/upload-artifact@v3
if: matrix.python == '3.10'
with:
name: wheels
path: dist
python-code-check:
name: 🔍 Check Python code
strategy:
matrix:
python:
- '3.10'
runs-on: ubuntu-latest
steps:
- name: "📥 Check-out"
uses: actions/checkout@v4
- name: "🧰 Install Python"
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: pip
cache-dependency-path: pyproject.toml
- name: "🧰 Install Protoc"
run: sudo apt install protobuf-compiler
- name: "🧰 Install dependencies"
run: |
python -m pip install --upgrade pip
pip install .
pip install .[tests]
- name: "🔍 Lint Python code"
run: pylint -E archive_query_log
unit-tests:
name: "🧪 Python unit tests"
- name: 📥 Check-out
uses: actions/checkout@v3
- name: 🧰 Install Protoc
run: sudo apt install protobuf-compiler
- name: 🧰 Install Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
cache: pip
cache-dependency-path: pyproject.toml
- name: 🧰 Install dependencies
run: pip install .[tests]
- name: 🔍 Check Python code
run: ruff .
python-typing:
name: 🔍 Check Python static typing
strategy:
matrix:
python:
- '3.10'
runs-on: ubuntu-latest
steps:
- name: "📥 Check-out"
uses: actions/checkout@v4
- name: "🧰 Install Python"
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: pip
cache-dependency-path: pyproject.toml
- name: "🧰 Install Protoc"
run: sudo apt install protobuf-compiler
- name: "🧰 Install dependencies"
run: |
python -m pip install --upgrade pip
pip install .
pip install .[tests]
- name: "🧪 Test Python code"
run: pytest --cov=./ --cov-report=xml --capture=no archive_query_log/
- name: "📤 Upload coverage to Codecov"
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
release:
name: "🚀 Create GitHub release"
- name: 📥 Check-out
uses: actions/checkout@v3
- name: 🧰 Install Protoc
run: sudo apt install protobuf-compiler
- name: 🧰 Install Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
cache: pip
cache-dependency-path: pyproject.toml
- name: 🧰 Install dependencies
run: pip install .[tests]
- name: 🔍 Check Python static typing
run: mypy .
python-security:
name: 🔍 Check Python code security
strategy:
matrix:
python:
- '3.10'
runs-on: ubuntu-latest
steps:
- name: 📥 Check-out
uses: actions/checkout@v3
- name: 🧰 Install Protoc
run: sudo apt install protobuf-compiler
- name: 🧰 Install Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
cache: pip
cache-dependency-path: pyproject.toml
- name: 🧰 Install dependencies
run: pip install .[tests]
- name: 🔍 Check Python code security
run: bandit -c pyproject.toml -r .
python-test:
name: 🧪 Test Python code
strategy:
matrix:
python:
- '3.10'
runs-on: ubuntu-latest
steps:
- name: 📥 Check-out
uses: actions/checkout@v3
- name: 🧰 Install Protoc
run: sudo apt install protobuf-compiler
- name: 🧰 Install Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
cache: pip
cache-dependency-path: pyproject.toml
- name: 🧰 Install dependencies
run: pip install .[tests]
- name: 🧪 Test Python code
run: pytest --cov --cov-report=xml archive_query_log
- name: 📤 Upload coverage to Codecov
uses: codecov/codecov-action@v3
if: matrix.python == '3.10'
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
docker-build:
name: 🏗️ Build Docker image
runs-on: ubuntu-latest
steps:
- name: 📥 Check-out
uses: actions/checkout@v3
- name: 🧰 Set up QEMU
uses: docker/setup-qemu-action@v2
- name: 🧰 Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: 🏗️ Build Docker image
uses: docker/build-push-action@v4
with:
context: .
push: false
cache-from: type=gha
cache-to: type=gha,mode=max
python-publish:
name: 🚀 Publish Python wheels
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
needs:
- python-build
- python-code-check
- python-typing
- python-security
- python-test
- docker-build
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- name: 📥 Check-out
uses: actions/checkout@v3
- name: 📥 Download Python wheels
uses: actions/download-artifact@v3
with:
name: wheels
path: dist
- name: 🚀 Publish Python wheels
uses: pypa/gh-action-pypi-publish@release/v1
docker-publish:
name: 🚀 Publish Docker image
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
permissions:
packages: write
needs:
- python-build
- python-code-check
- python-typing
- python-security
- python-test
- docker-build
runs-on: ubuntu-latest
steps:
- name: 📥 Check-out
uses: actions/checkout@v3
- name: 🧰 Set up QEMU
uses: docker/setup-qemu-action@v2
- name: 🧰 Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: 🔑 Login to GitHub Packages
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: ℹ️ Extract image metadata
id: meta
uses: docker/metadata-action@v4
with:
images: |
ghcr.io/${{ github.repository }}
- name: 🚀 Build and push image
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
github-release:
name: 🚀 Create GitHub release
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
needs:
- code-format
- lint
- unit-tests
- python-build
- python-code-check
- python-typing
- python-security
- python-test
- docker-build
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: "📥 Check-out"
uses: actions/checkout@v4
- name: "🏷️ Get version tag"
id: get-version
run: echo ::set-output name=tag::${GITHUB_REF/refs\/tags\//}
- name: "📥 Download Python wheel"
uses: actions/upload-artifact@v4
with:
name: wheel
path: dist/*
- name: "🚀 Create GitHub release"
uses: softprops/action-gh-release@v1
with:
name: Release ${{ steps.get-version.outputs.tag }}
files: dist/*
fail_on_unmatched_files: true
draft: false
prerelease: false
generate_release_notes: true
- name: 📥 Check-out
uses: actions/checkout@v3
- name: 📥 Download Python wheels
uses: actions/download-artifact@v3
with:
name: wheels
path: dist
- name: 🚀 Create GitHub release
uses: softprops/action-gh-release@v1
with:
name: Release ${{ github.ref_name }}
files: dist/*
fail_on_unmatched_files: true
draft: false
prerelease: false
generate_release_notes: true
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -498,5 +498,5 @@ cython_debug/

# Custom exclusions
*.lop
reimer*.pdf
cd-cover.pdf
.idea/kubernetes-settings.xml
config.override.yml
23 changes: 23 additions & 0 deletions .idea/dataSources.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading