mirror of
https://github.com/digital-asset/daml.git
synced 2024-11-10 10:46:11 +03:00
818a52b094
simplify docs cron This commit changes the "live state" to be that all versions are there on S3, most of them hidden the way snapshots currently are, and only displays in the drop-down the list of "supported" versions, i.e. stable and >= 1.0.0. The docs cron will now: - Get list of versions from GitHub (as it does now) - Get list of versions from S3 (as it does now: versions.json + snapshots.json, though it assumes we'll have a follow-up PR to change the latter to hidden.json) - Compare; if the sets of versions are the same, stop there. (Note: this "set of versions" here includes the notion of which versions are shown, not just which ones exist. See the Versions data type in the code.) - If there is a new hidden version, just build that, push it, change nothing else. No need to download any of the existing versions or mess around with anything else (except updating `hidden.json`, otherwise we're going to be doing this way too often.) - If there is a new visible version: - check if we have it locally (i.e. from the previous step: it's a version we just added) - figure out the old and new default versions, and then apply the diff to the top-level directory. Basically download the two folders, list files that exist in the old one and not in the new one, delete those from S3, then push the new one to the top-level on S3. - update versions.json & hidden.json (and for now snapshots.json) This means that: - we never mess with the existing versions; we don't need to download them, we don't need to change them, we don't clean them up. Old links keep working forever. - The running time for the docs cron is roughly constant, in that it should very rarely have to either build or upload (or download) more than 2 versions per run, and if those instances happen they'd be accidents (we made 3 actual releases in an hour), not build-up over time.
32 lines
742 B
Python
32 lines
742 B
Python
# Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
load("//bazel_tools:haskell.bzl", "da_haskell_binary")
|
|
|
|
da_haskell_binary(
|
|
name = "cron",
|
|
srcs = glob(["src/**/*.hs"]),
|
|
hackage_deps = [
|
|
"aeson",
|
|
"base",
|
|
"case-insensitive",
|
|
"containers",
|
|
"directory",
|
|
"extra",
|
|
"filepath",
|
|
"http-client",
|
|
"http-client-tls",
|
|
"http-types",
|
|
"process",
|
|
"regex-tdfa",
|
|
"semver",
|
|
"split",
|
|
"text",
|
|
"unordered-containers",
|
|
"utf8-string",
|
|
],
|
|
src_strip_prefix = "src",
|
|
visibility = ["//visibility:public"],
|
|
deps = [],
|
|
)
|