diff --git a/tests/apm-managed-service/pgo/pgo.log b/tests/apm-managed-service/pgo/pgo.log new file mode 100644 index 0000000..5944701 Binary files /dev/null and b/tests/apm-managed-service/pgo/pgo.log differ diff --git a/updatecli-compose.yaml b/updatecli-compose.yaml index 9fc6768..6af01b6 100644 --- a/updatecli-compose.yaml +++ b/updatecli-compose.yaml @@ -39,6 +39,11 @@ policies: values: - updatecli/policies/updatecli/version/testdata/values.yaml + - name: Handle apm-managed-service/pgo (e2e tests) + policy: ghcr.io/elastic/oblt-updatecli-policies/apm-managed-service/pgo:latest + values: + - updatecli/policies/apm-managed-service/pgo/testdata/values.yaml + - name: Handle updatecli update policy: ghcr.io/elastic/oblt-updatecli-policies/updatecli/version:latest values: diff --git a/updatecli/policies/apm-managed-service/pgo/CHANGELOG.md b/updatecli/policies/apm-managed-service/pgo/CHANGELOG.md new file mode 100644 index 0000000..e384ce7 --- /dev/null +++ b/updatecli/policies/apm-managed-service/pgo/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog + +## 0.1.0 + +* Init policy diff --git a/updatecli/policies/apm-managed-service/pgo/Policy.yaml b/updatecli/policies/apm-managed-service/pgo/Policy.yaml new file mode 100644 index 0000000..db3456e --- /dev/null +++ b/updatecli/policies/apm-managed-service/pgo/Policy.yaml @@ -0,0 +1,15 @@ +authors: + - Victor Martinez + +url: "https://github.com/elastic/oblt-updatecli-policies/" +changelog: "https://github.com/elastic/oblt-updatecli-policies/tree/main/updatecli/policies/apm-managed-service/pgo/CHANGELOG.md" +documentation: "https://github.com/elastic/oblt-updatecli-policies/tree/main/updatecli/policies/apm-managed-service/pgo/README.md" +source: "https://github.com/elastic/oblt-updatecli-policies/tree/main/updatecli/policies/apm-managed-service/pgo/" +version: 0.1.0 +vendor: Elastic Project + +licenses: + - "Apache-2.0 license" + +description: | + PGO build in MIS update policy diff --git a/updatecli/policies/apm-managed-service/pgo/README.md b/updatecli/policies/apm-managed-service/pgo/README.md new file mode 100644 index 0000000..b17b539 --- /dev/null +++ b/updatecli/policies/apm-managed-service/pgo/README.md @@ -0,0 +1,3 @@ +# README + +This policy updates the PGO file defined in `elastic/apm-managed-service` diff --git a/updatecli/policies/apm-managed-service/pgo/testdata/values.yaml b/updatecli/policies/apm-managed-service/pgo/testdata/values.yaml new file mode 100644 index 0000000..fef56f7 --- /dev/null +++ b/updatecli/policies/apm-managed-service/pgo/testdata/values.yaml @@ -0,0 +1,12 @@ +scm: + enabled: true + owner: elastic + repository: oblt-updatecli-policies + username: obltmachine + branch: main + commitusingapi: true + +# use one existing file until the pgo file is in the repository. +pgo_file: pgo.log +pgo_target_path: ./tests/apm-managed-service/pgo +pgo_source_repo: observability-robots-playground diff --git a/updatecli/policies/apm-managed-service/pgo/updatecli.d/default.tpl b/updatecli/policies/apm-managed-service/pgo/updatecli.d/default.tpl new file mode 100644 index 0000000..7df110c --- /dev/null +++ b/updatecli/policies/apm-managed-service/pgo/updatecli.d/default.tpl @@ -0,0 +1,99 @@ +--- +# Helpers +# {{ $GitHubRepositoryList := env "GITHUB_REPOSITORY" | split "/"}} +# {{ $GitHubPAT := env "GITHUB_TOKEN"}} +# {{ $GitHubUsername := env "GITHUB_ACTOR"}} + +name: '{{ .name }}' +pipelineid: '{{ .pipelineid }}' + +sources: + sha: + kind: shell + spec: + command: gh api /repos/{{ default $GitHubRepositoryList._0 .scm.owner }}/{{ .pgo_source_repo}}/commits/main --jq '.sha' + environments: + - name: GITHUB_TOKEN + - name: PATH + pull_request: + kind: shell + dependson: + - sha + spec: + command: gh api /repos/{{ default $GitHubRepositoryList._0 .scm.owner }}/{{ .pgo_source_repo}}/commits/{{ source "sha" }}/pulls --jq '.[].html_url' + environments: + - name: GITHUB_TOKEN + - name: PATH + pgo-file: + kind: shell + scmid: apm-managed-service + dependson: + - sha + spec: + command: tar cvzf {{ requiredEnv "GITHUB_WORKSPACE" }}/pgo.tgz {{ .pgo_file }} + environments: + - name: PATH + workdir: "{{ .pgo_source_path }}" + +targets: + pgo: + name: PGO file {{ source "sha" }} + disablesourceinput: true + kind: shell + dependson: + - source#pgo-file + spec: + # git diff helps to print what it changed, If it is empty, then updatecli report a success with no changes applied. + # See https://www.updatecli.io/docs/plugins/resource/shell/#_shell_target + command: 'tar -xzf {{ requiredEnv "GITHUB_WORKSPACE" }}/pgo.tgz && git --no-pager diff' + workdir: "{{ .pgo_target_path }}" +#{{ if or (.scm.enabled) (env "GITHUB_REPOSITORY") }} + scmid: default +# {{ end }} + +{{ if or (.scm.enabled) (env "GITHUB_REPOSITORY") }} +scms: + default: + kind: "github" + spec: + # Priority set to the environment variable + user: '{{ default $GitHubUsername .scm.username}}' + owner: '{{ default $GitHubRepositoryList._0 .scm.owner }}' + repository: '{{ default $GitHubRepositoryList._1 .scm.repository}}' + token: '{{ default $GitHubPAT .scm.token }}' + username: '{{ default $GitHubUsername .scm.username }}' + branch: '{{ .scm.branch }}' +#{{ if .scm.commitusingapi }} + commitusingapi: {{ .scm.commitusingapi }} +# {{ end }} + + apm-managed-service: + kind: github + spec: + user: '{{ default $GitHubUsername .scm.username }}' + owner: '{{ default $GitHubRepositoryList._0 .scm.owner }}' + repository: '{{ .pgo_source_repo }}' + token: '{{ default $GitHubPAT .scm.token }}' + username: '{{ default $GitHubUsername .scm.username }}' + branch: 'main' + +actions: + default: + title: '[Automation] Update default.pgo' + kind: "github/pullrequest" + scmid: default + sourceid: sha + spec: + automerge: {{ .automerge }} + labels: + - dependencies + description: |- + ### What + Update default.pgo automatic sync + + ### Why + *Changeset* + * {{ source "pull_request" }} + * https://github.com/{{ default $GitHubRepositoryList._0 .scm.owner }}/{{ .pgo_source_repo }}/commit/{{ source "sha" }} + +{{ end }} diff --git a/updatecli/policies/apm-managed-service/pgo/values.yaml b/updatecli/policies/apm-managed-service/pgo/values.yaml new file mode 100644 index 0000000..b37161a --- /dev/null +++ b/updatecli/policies/apm-managed-service/pgo/values.yaml @@ -0,0 +1,17 @@ +name: 'automation: update PGO' +pipelineid: apm-managed-service/pgo +automerge: false + +pgo_file: default.pgo +pgo_source_repo: apm-managed-service +pgo_source_path: ./ +pgo_target_path: ./ + +scm: + enabled: false + # owner: v1v + # repository: updatecli-demo + # token: "xxx" + # username: "v1v-bot" + # branch: main + # commitusingapi: false