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

Use c2cciutils - publish to GitHub Container Registry #641

Merged
merged 1 commit into from
Dec 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
25 changes: 25 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
root = true

[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
max_line_length = 110
quote_type = single

[*.js]
indent_size = 2
line_comment = //
block_comment_start = /*
block_comment = *
block_comment_end = */

[*.{json,yaml,yml}]
indent_size = 2

[Makefile]
indent_style = tab
tab_width = 2
8 changes: 1 addition & 7 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@
version: 2
updates:
- package-ecosystem: pip
directory: '/'
directory: /
schedule:
interval: daily
time: '02:00'
open-pull-requests-limit: 99
allow:
- dependency-type: direct
ignore:
- dependency-name: none
versions:
- '>= 0'
1 change: 1 addition & 0 deletions .github/workflows/codeql.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ jobs:
codeql:
name: CodeQL scanning
runs-on: ubuntu-20.04
timeout-minutes: 15

steps:
- name: Checkout repository
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/dependabot-auto-merge.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ jobs:
auto-merge:
name: Auto merge Dependabot updates
runs-on: ubuntu-20.04
timeout-minutes: 5

steps:
- run: echo "$ECHO"
env:
Expand All @@ -28,7 +30,7 @@ jobs:
env:
ECHO: ${{ toJson(steps) }}
- name: Auto merge
uses: ridedott/dependabot-auto-merge-action@master
uses: sbrunner/merge-me-action@workflow_run_dist
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_LOGIN: dependabot[bot]
34 changes: 17 additions & 17 deletions .github/workflows/ci.yaml → .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,32 @@ jobs:
runs-on: ubuntu-20.04
name: Continuous integration
timeout-minutes: 10

env:
PATH: /bin:/usr/bin:/usr/local/bin:/home/runner/.local/bin
SUMMON_PROVIDER: /usr/local/bin/gopass
if: "!startsWith(github.event.head_commit.message, '[skip ci] ')"

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2

- uses: camptocamp/initialise-gopass-summon-action@v2
with:
ci-gpg-private-key: ${{secrets.CI_GPG_PRIVATE_KEY}}
github-gopass-ci-token: ${{secrets.GOPASS_CI_GITHUB_TOKEN}}
patterns: pypi
if: github.repository == 'camptocamp/tilecloud'

- run: |
sudo rm /etc/apt/sources.list.d/*.list
sudo apt update
sudo apt install --yes python3-wheel python3-setuptools
sudo apt install --yes python3-wheel

- run: sudo python3 -m pip install --requirement=ci/requirements.txt

- name: Checks
run: c2cciutils-checks

- run: python3 -m pip install --requirement=requirements-dev.txt

- run: docker-compose up --exit-code-from test
- run: git --no-pager diff --check HEAD~100

- uses: camptocamp/initialise-gopass-summon-action@v1
with:
ci-gpg-private-key: ${{secrets.CI_GPG_PRIVATE_KEY}}
github-gopass-ci-token: ${{secrets.GOPASS_CI_GITHUB_TOKEN}}
if: github.repository == 'camptocamp/tilecloud'
- run: |
summon --yaml '
USERNAME: !var gs/ci/pypi/username
PASSWORD: !var gs/ci/pypi/password
' ci/publish-pypi
- name: Publish
run: c2cciutils-publish
if: github.repository == 'camptocamp/tilecloud'
10 changes: 4 additions & 6 deletions bin/favicon.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,16 @@ def box(minx, miny, maxx, maxy):
image_surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, SIZE, SIZE)
context = cairo.Context(image_surface)
context.scale(1, -1)
context.translate(0, - SIZE)
context.translate(0, -SIZE)
for i, coord in enumerate(cloud.exterior.coords):
if i == 0:
context.move_to(SCALE * coord[0] + TRANSLATE,
SCALE * coord[1] + 2 * TRANSLATE)
context.move_to(SCALE * coord[0] + TRANSLATE, SCALE * coord[1] + 2 * TRANSLATE)
else:
context.line_to(SCALE * coord[0] + TRANSLATE,
SCALE * coord[1] + 2 * TRANSLATE)
context.line_to(SCALE * coord[0] + TRANSLATE, SCALE * coord[1] + 2 * TRANSLATE)
context.close_path()
context.set_source_rgb(1, 1, 1)
context.fill_preserve()
context.set_source_rgb(0, 0, 0)
context.set_line_width(LINE_WIDTH)
context.stroke()
image_surface.write_to_png('favicon.png')
image_surface.write_to_png("favicon.png")
12 changes: 12 additions & 0 deletions ci/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
checks:
required_workflows:
clean.yaml: False
audit.yaml: False
rebuild.yaml: False
versions:
audit: False
rebuild: False

publish:
docker:
images: []
1 change: 1 addition & 0 deletions ci/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c2cciutils==1.0.dev20201209160528
1 change: 0 additions & 1 deletion examples/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
from tilecloud.filter.logger import Logger
from tilecloud.store.boundingpyramid import BoundingPyramidTileStore


logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(os.path.basename(sys.argv[0]))

Expand Down
1 change: 0 additions & 1 deletion examples/renderingtheworld.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
from tilecloud.store.renderingtheworld import RenderingTheWorldTileStore
from tilecloud.store.wmts import WMTSTileStore


logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(os.path.basename(sys.argv[0]))

Expand Down
80 changes: 47 additions & 33 deletions tc-copy
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
#!/usr/bin/env python

from c2cwsgiutils import stats
from itertools import imap
import logging
from optparse import OptionParser
import os.path
import random
import sys

from c2cwsgiutils import stats

from tilecloud import BoundingPyramid, TileStore, consume
from tilecloud.filter.benchmark import Benchmark, StatsdCountErrors, StatsdCountTiles
from tilecloud.filter.consistenthash import EveryNth
from tilecloud.filter.contenttype import ContentTypeAdder
from tilecloud.filter.error import DropErrors, LogErrors, MaximumConsecutiveErrors, MaximumErrorRate, MaximumErrors
from tilecloud.filter.error import (
DropErrors,
LogErrors,
MaximumConsecutiveErrors,
MaximumErrorRate,
MaximumErrors,
)
from tilecloud.filter.logger import Logger
from tilecloud.filter.rate import RateLimit
from tilecloud.store.boundingpyramid import BoundingPyramidTileStore
Expand All @@ -21,25 +28,25 @@ from tilecloud.store.boundingpyramid import BoundingPyramidTileStore
def main(argv):
logger = logging.getLogger(os.path.basename(argv[0]))
option_parser = OptionParser()
option_parser.add_option('--benchmark', action='store_true')
option_parser.add_option('-b', '--bounding-pyramid', metavar='BOUNDING-PYRAMID')
option_parser.add_option('--add-content-type', action='store_true')
option_parser.add_option('-i', metavar='I', type=int)
option_parser.add_option('-g', '--generate', metavar='TILE-STORE', action='append')
option_parser.add_option('--limit', metavar='N', type=int)
option_parser.add_option('-m', '--move', action='store_true')
option_parser.add_option('--maximum-consecutive-errors', metavar='N', type=int)
option_parser.add_option('--maximum-errors', metavar='N', type=int)
option_parser.add_option('--maximum-error-rate', metavar='FLOAT', type=float)
option_parser.add_option('-n', metavar='N', type=int)
option_parser.add_option('-o', '--overwrite', action='store_true')
option_parser.add_option('-r', '--rate-limit', metavar='HZ', type=float)
option_parser.add_option('--randomize', action='store_true')
option_parser.add_option('--statsd', action='store_true')
option_parser.add_option('--statsd-host', default='127.0.0.1', metavar='HOST')
option_parser.add_option('--statsd-port', default=8125, metavar='PORT', type=int)
option_parser.add_option('--statsd-prefix', default='tc-copy-', metavar='PREFIX')
option_parser.add_option('-v', '--verbose', action='store_true')
option_parser.add_option("--benchmark", action="store_true")
option_parser.add_option("-b", "--bounding-pyramid", metavar="BOUNDING-PYRAMID")
option_parser.add_option("--add-content-type", action="store_true")
option_parser.add_option("-i", metavar="I", type=int)
option_parser.add_option("-g", "--generate", metavar="TILE-STORE", action="append")
option_parser.add_option("--limit", metavar="N", type=int)
option_parser.add_option("-m", "--move", action="store_true")
option_parser.add_option("--maximum-consecutive-errors", metavar="N", type=int)
option_parser.add_option("--maximum-errors", metavar="N", type=int)
option_parser.add_option("--maximum-error-rate", metavar="FLOAT", type=float)
option_parser.add_option("-n", metavar="N", type=int)
option_parser.add_option("-o", "--overwrite", action="store_true")
option_parser.add_option("-r", "--rate-limit", metavar="HZ", type=float)
option_parser.add_option("--randomize", action="store_true")
option_parser.add_option("--statsd", action="store_true")
option_parser.add_option("--statsd-host", default="127.0.0.1", metavar="HOST")
option_parser.add_option("--statsd-port", default=8125, metavar="PORT", type=int)
option_parser.add_option("--statsd-prefix", default="tc-copy-", metavar="PREFIX")
option_parser.add_option("-v", "--verbose", action="store_true")
options, args = option_parser.parse_args(argv[1:])
if options.verbose:
logging.basicConfig(level=logging.INFO)
Expand All @@ -54,7 +61,7 @@ def main(argv):
if options.statsd:
statsd_settings = {
"c2c.statsd_address": options.statsd_host + ":" + options.statsd_port,
"c2c.statsd_prefix": options.statsd_prefix
"c2c.statsd_prefix": options.statsd_prefix,
}
stats.init_backends(statsd_settings)

Expand Down Expand Up @@ -84,12 +91,12 @@ def main(argv):
tilestream = imap(benchmark.sample(), tilestream)
tilestream = input_tilestore.get(tilestream)
if benchmark:
tilestream = imap(benchmark.sample('get'), tilestream)
tilestream = imap(benchmark.sample("get"), tilestream)
for i, g in enumerate(generate):
tilestream = g.get(tilestream)
if options.benchmark:
tilestream = imap(benchmark.sample('generate-%d' % (i,)), tilestream)
tilestream = imap(LogErrors(logger, logging.ERROR, '%(tilecoord)s: %(error)s'), tilestream)
tilestream = imap(benchmark.sample("generate-%d" % (i,)), tilestream)
tilestream = imap(LogErrors(logger, logging.ERROR, "%(tilecoord)s: %(error)s"), tilestream)
if options.statsd:
tilestream = imap(StatsdCountErrors(), tilestream)
if options.maximum_consecutive_errors:
Expand All @@ -103,27 +110,34 @@ def main(argv):
tilestream = imap(ContentTypeAdder(), tilestream)
tilestream = output_tilestore.put(tilestream)
if benchmark:
tilestream = imap(benchmark.sample('put'), tilestream)
tilestream = imap(benchmark.sample("put"), tilestream)
if options.move:
tilestream = input_tilestore.delete(tilestream)
if benchmark:
tilestream = imap(benchmark.sample('delete'), tilestream)
tilestream = imap(benchmark.sample("delete"), tilestream)
if options.verbose:
tilestream = imap(Logger(logger, logging.INFO, '%(tilecoord)s'), tilestream)
tilestream = imap(Logger(logger, logging.INFO, "%(tilecoord)s"), tilestream)
if options.statsd:
tilestream = imap(StatsdCountTiles(), tilestream)
consume(tilestream, options.limit)
finally:
logging.basicConfig(level=logging.INFO)
if benchmark:
keys = ['get']
keys.extend('generate-%i' % (i,) for i in range(0, len(generate)))
keys.extend(['put', 'delete'])
keys = ["get"]
keys.extend("generate-%i" % (i,) for i in range(0, len(generate)))
keys.extend(["put", "delete"])
for key in keys:
if key in benchmark.statisticss:
statistics = benchmark.statisticss[key]
logger.info('%s: %s%s' % (key, statistics, ' (%.1f tiles/s)' % (1.0 / statistics.mean,) if statistics.n else ''))
logger.info(
"%s: %s%s"
% (
key,
statistics,
" (%.1f tiles/s)" % (1.0 / statistics.mean,) if statistics.n else "",
)
)


if __name__ == '__main__':
if __name__ == "__main__":
sys.exit(main(sys.argv))
12 changes: 5 additions & 7 deletions tc-delete
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,13 @@ from tilecloud.store.boundingpyramid import BoundingPyramidTileStore
def main(argv):
logger = logging.getLogger(os.path.basename(argv[0]))
option_parser = OptionParser()
option_parser.add_option('-b', '--bounding-pyramid',
metavar='BOUNDING-PYRAMID')
option_parser.add_option('-v', '--verbose', action='store_true')
option_parser.add_option("-b", "--bounding-pyramid", metavar="BOUNDING-PYRAMID")
option_parser.add_option("-v", "--verbose", action="store_true")
options, args = option_parser.parse_args(argv[1:])
if options.verbose:
logging.basicConfig(level=logging.INFO)
if options.bounding_pyramid:
bounding_pyramid = \
BoundingPyramid.from_string(options.bounding_pyramid)
bounding_pyramid = BoundingPyramid.from_string(options.bounding_pyramid)
else:
bounding_pyramid = None
for arg in args:
Expand All @@ -33,9 +31,9 @@ def main(argv):
tilestream = tilestore.list()
tilestream = tilestore.delete(tilestream)
if options.verbose:
tilestream = imap(Logger(logger, logging.INFO, '%(tilecoord)s'), tilestream)
tilestream = imap(Logger(logger, logging.INFO, "%(tilecoord)s"), tilestream)
consume(tilestream, None)


if __name__ == '__main__':
if __name__ == "__main__":
sys.exit(main(sys.argv))
Loading