Skip to content

v0.40.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 20:40
· 59 commits to master since this release
1b0f45b

The headline is faster CI you can see and preview: ankra pipeline get and
the new ankra pipeline time-saved show the CI time path filters, the
dependency graph and promoted publishes saved; ankra pipeline validate
lists named path sets and, inside a checkout, answers affected: stages from
the same dependency graph the run reads; and --full on pipeline run and
rerun sets the path filters aside when you need everything. Every -o json
change is an added field; no existing key changes.

Added

  • The agent skills steer assistants onto Ankra's recommended paths.
    ankra skills install ships all 25 skills reviewed against the current
    CLI and documentation. ankra-platform-principles names seven golden paths
    (ship code, GitOps as the source of truth, the estate, day 2, agent-driven
    work, fast CI, infrastructure as code) and routes every request to the skill
    that owns it. Every other skill opens with a short recommended path saying
    what to do first, which skill takes over next and what to avoid. Commands,
    flags and fields that had drifted are corrected: for example
    registry_url instead of the legacy repository_url, the teardown and
    preflight rules per provider, and backups being available to every
    organisation. Capabilities the skills did not cover are added: fast CI with
    promote_from and the merge train, hub-and-spoke observability, GitOps
    conflicts and repointing, Ankra Cloud Kubernetes, AI review repositories,
    service tokens and GitHub OIDC trust.

  • The ankra-terraform skill covers Terraform provider 0.3.0. The
    provider now manages what the CLI can create, change or delete (97
    resources and 42 data sources: every cluster lane, managed Kubernetes,
    node groups, credentials, Helm registries, variables, cluster settings,
    alerts and DNS, applications and pipelines, stack profiles, backups, the
    image registry, members, tokens, and AI, cost and security settings), and
    ankra skills install now teaches assistants those resources, the
    project_id the provider needs in organisations with projects, and which
    changes replace, re-mint or refuse. On provider 0.2.x only the cluster
    resources exist, and the skill says so. It also says the provider's
    organisation override falls back to ANKRA_ORG, the CLI's variable, not
    the ANKRA_ORGANISATION_ID that Ankra Pipelines sets in every step.

  • ankra pipeline validate lists the definition's named path sets. A
    definition that declares path_sets: (ankraio/cluster#4862) gets a Path sets block after the violations: each set with every set it includes
    expanded, the sets it includes, and every path list and set that uses it.
    -o json|yaml carries them as a new path_sets field, absent when the
    definition declares none. The ankra-ship and ankra-cicd skills document
    path_sets:.

  • ankra pipeline run --full and ankra pipeline rerun --full run every
    stage.
    The pipeline's path filters (on.<event>.paths, when.paths and
    paths:) are set aside for that one run, and the run records who asked; a
    stage's if: still decides. The same flag is on ankra application pipeline run and rerun. pipeline get now prints a Full run: line
    saying why a run set its filters aside (a --full dispatch or re-run, the
    ankra:full-run pull request label, the organisation's default-branch
    policy or the definition's full_run: block), and -o json|yaml carries
    full_run_source, full_run_requested_by and full_run_message, absent
    for a run that applied its filters. A run skipped because its pushed commit
    carried a skip marker shows its skip_marker error class with what it
    means.

  • The ankra-ship and ankra-cicd skills teach affected:. They say when
    to name the Go or pnpm workspace packages a stage tests instead of listing
    globs, that affected: beside a when path filter is refused as paths:
    is, and how a not-affected skip meets CI slots and promotion: it is settled
    without waiting for a slot, and a promoted push counts it when the push
    changes nothing the pull request run's graph was not asked about.

  • ankra pipeline validate --changed-file reads the dependency graph for
    affected: stages.
    A stage that declares affected: (Go packages or pnpm
    workspace packages) is decided at run time by the run's checkout, from the
    dependency graph of the commit it checks out (ankraio/cluster#4866).
    Inside a git checkout, validate --changed-file now runs the same analysis
    against the working tree and shows, per stage, whether the change reaches it
    (graph: affected) or not (skip: not affected (graph), satisfied for the
    stages that need it). --no-local-graph leaves them to the run. The CLI
    carries its own copy of the analysis and says so when it differs from the
    platform's; it never runs a script the API sends. Needs sh, git, awk
    and grep (not on Windows). --changed-file names are now cleaned to the
    repository-relative form (./api/x.go is api/x.go), and one outside the
    repository is a usage error.

  • ankra ai memories list and ankra ai memories clear show and delete
    what the assistant remembers about you.
    Ankra's chat stores short facts
    from your conversations and recalls them into later ones; until now they
    were only visible in the portal. list prints your memories newest first
    (--limit up to 200, and it says when there may be more), and clear
    deletes all of yours in the current organisation after a confirmation
    (--yes to skip it). Both act on your own memories only and take -o json|yaml. A platform without the token routes (ankraio/cluster#4859) is
    named as such instead of reading as "no memories".

  • ankra pipeline get shows how much CI time a run saved, and ankra pipeline time-saved totals it. Under the run's steps, a Time saved
    line gives the platform's estimate of the CI time path filters and a
    promoted publish kept the run from spending, with one line per skipped
    stage saying why and what the estimate is based on. A stage with no
    history is shown as unknown and never counted. A stage the dependency
    graph skipped is named as such ("not affected: no changed file is in its
    dependency graph", reason not_affected, ankraio/cluster#4888), and
    time-saved totals it on its own line. -o json|yaml adds the
    record as a new time_saved field and leaves every existing field as it
    was. ankra pipeline time-saved totals the organisation, or one pipeline
    with --application or --repository, over the last 30 days (--window 7d for 7). A platform without the routes (ankraio/cluster#4863)
    prints nothing extra, and time_saved is null.