ci(copybara): set up Zuul to sync with dotfiles-external
GitOrigin-RevId: 5d313e1f2dd57b3c9c8ee317a545559ab9a16c8f
diff --git a/roles/README.md b/roles/README.md
new file mode 100644
index 0000000..1e743f0
--- /dev/null
+++ b/roles/README.md
@@ -0,0 +1 @@
+Ansible role definitions for Zuul. See [//.zuul.yaml](../.zuul.yaml).
diff --git a/roles/export-commits/tasks/main.yaml b/roles/export-commits/tasks/main.yaml
new file mode 100644
index 0000000..8dfb6c5
--- /dev/null
+++ b/roles/export-commits/tasks/main.yaml
@@ -0,0 +1,9 @@
+- name: "Run Copybara migration"
+ ansible.builtin.shell:
+ cmd: "sh export-commits.sh"
+ chdir: "{{ zuul.project.src_dir }}/.copybara"
+ register: result
+ # Exit status 4 means NO_OP:
+ # https://github.com/google/copybara/blob/55c4904442bcf905fe03c2297488b90428b472a7/java/com/google/copybara/util/ExitCode.java#L42
+ failed_when: result.rc not in [0, 4]
+ retries: 3
diff --git a/roles/validate-copybara-config/tasks/main.yaml b/roles/validate-copybara-config/tasks/main.yaml
new file mode 100644
index 0000000..346550e
--- /dev/null
+++ b/roles/validate-copybara-config/tasks/main.yaml
@@ -0,0 +1,10 @@
+- name: "Create test_repos_config.sky"
+ ansible.builtin.copy:
+ src: "{{ zuul.project.src_dir }}/.copybara/test_repos_config.bara.sky.template"
+ dest: "{{ zuul.project.src_dir }}/.copybara/test_repos_config.bara.sky"
+ remote_src: true
+ force: true
+- name: "Validate Copybara conf file"
+ ansible.builtin.shell:
+ cmd: "copybara validate copy.bara.sky"
+ chdir: "{{ zuul.project.src_dir }}/.copybara"