Skip to content

Commit

Permalink
Use c2cciutils - Publish to GitHubcContainer Registry
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrunner committed Dec 10, 2020
1 parent 33ad1e8 commit 9c2485e
Show file tree
Hide file tree
Showing 37 changed files with 277 additions and 234 deletions.
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: 7 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: 2
updates:
- package-ecosystem: pip
directory: '/'
directory: /
schedule:
interval: daily
time: '02:00'
Expand All @@ -12,3 +12,9 @@ updates:
- dependency-name: none
versions:
- '>= 0'
- package-ecosystem: pip
directory: /ci
schedule:
interval: daily
time: '02:00'
open-pull-requests-limit: 99
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")
8 changes: 8 additions & 0 deletions ci/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
checks:
required_workflows:
clean.yaml: False
audit.yaml: False
rebuild.yaml: False
versions:
audit: False
rebuild: False
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

0 comments on commit 9c2485e

Please sign in to comment.