105 lines
4.1 KiB
YAML
105 lines
4.1 KiB
YAML
---
|
|
- job:
|
|
name: codegenerator-rust-base
|
|
parent: unittests
|
|
description: |
|
|
Base job for generation of the Rust code
|
|
attempts: 1
|
|
timeout: 1800
|
|
pre-run:
|
|
- playbooks/codegenerator/pre.yaml
|
|
post-run:
|
|
- playbooks/rust/post.yaml
|
|
vars:
|
|
codegenerator_service_metadata_target_map:
|
|
- service: "block-storage"
|
|
metadata: "metadata/block-storage_metadata.yaml"
|
|
targets: ["rust-sdk", "rust-cli", "rust-tui"]
|
|
- service: "compute"
|
|
metadata: "metadata/compute_metadata.yaml"
|
|
targets: ["rust-sdk", "rust-cli", "rust-tui"]
|
|
- service: "dns"
|
|
metadata: "metadata/dns_metadata.yaml"
|
|
targets: ["rust-sdk", "rust-cli", "rust-tui"]
|
|
- service: "identity"
|
|
metadata: "metadata/identity_metadata.yaml"
|
|
targets: ["rust-sdk", "rust-cli", "rust-tui"]
|
|
- service: "image"
|
|
metadata: "metadata/image_metadata.yaml"
|
|
targets: ["rust-sdk", "rust-cli", "rust-tui"]
|
|
- service: "load-balancer"
|
|
metadata: "metadata/load-balancer_metadata.yaml"
|
|
targets: ["rust-sdk", "rust-cli", "rust-tui"]
|
|
- service: "network"
|
|
metadata: "metadata/network_metadata.yaml"
|
|
targets: ["rust-sdk", "rust-cli", "rust-tui"]
|
|
- service: "object-store"
|
|
metadata: "metadata/object-store_metadata.yaml"
|
|
targets: ["rust-sdk"]
|
|
- service: "placement"
|
|
metadata: "metadata/placement_metadata.yaml"
|
|
targets: ["rust-sdk", "rust-cli"]
|
|
# - service: "shared-file-system"
|
|
# metadata: "metadata/shared-file-system_metadata.yaml"
|
|
# targets: ["rust-sdk"]
|
|
|
|
- job:
|
|
name: codegenerator-rust-all
|
|
parent: codegenerator-rust-base
|
|
# It takes a while to optimize and compile the project
|
|
timeout: 5400
|
|
description: |
|
|
Generate Rust SDK/CLI
|
|
dependencies:
|
|
- name: codegenerator-openapi-block-storage-tips-with-api-ref
|
|
soft: true
|
|
- name: codegenerator-openapi-compute-tips-with-api-ref
|
|
soft: true
|
|
- name: codegenerator-openapi-dns-tips-with-api-ref
|
|
soft: true
|
|
- name: codegenerator-openapi-identity-tips-with-api-ref
|
|
soft: true
|
|
- name: codegenerator-openapi-image-tips-with-api-ref
|
|
soft: true
|
|
- name: codegenerator-openapi-load-balancing-tips-with-api-ref
|
|
soft: true
|
|
- name: codegenerator-openapi-network-tips-with-api-ref
|
|
soft: true
|
|
- name: codegenerator-openapi-object-store-static
|
|
soft: true
|
|
- name: codegenerator-openapi-placement-tips-with-api-ref
|
|
soft: true
|
|
- name: codegenerator-openapi-shared-file-system-tips-with-api-ref
|
|
soft: true
|
|
pre-run: playbooks/openapi/fetch.yaml
|
|
run: playbooks/rust/all.yaml
|
|
vars:
|
|
codegenerator_base_dir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}"
|
|
openapi_dest: "{{ codegenerator_base_dir }}/wrk/openapi_specs"
|
|
patch_path: "{{ ansible_user_dir }}/{{ zuul.change }}.patch"
|
|
rust_sdk_git_repo: "https://github.com/gtema/openstack"
|
|
rust_project_dir: "{{ ansible_user_dir }}/openstack"
|
|
|
|
- job:
|
|
name: codegenerator-propose-rust-openstack-change
|
|
description: |
|
|
Propose changes to the Rust OpenStack project with the code newly
|
|
generated in this change.
|
|
|
|
This job is applying the git patch created by the
|
|
`codegenerator-rust-all` job. It accesses target repository using SSH
|
|
and a public key of the project (`curl
|
|
https://zuul.opendev.org/api/tenant/openstack/project-ssh-key/openstack/codegenerator.pub`)
|
|
being added as a deploy key in GitHub repository with read/write access.
|
|
Pull Request itself is not opened, since it requires additionally API
|
|
token what would require hardcoding secret (and GitHub does everything
|
|
possible not to have long lasting tokens).
|
|
post-review: true
|
|
run: playbooks/rust/propose-github.yaml
|
|
nodeset:
|
|
nodes: []
|
|
vars:
|
|
rust_sdk_git_repo: "git@github.com:gtema/openstack.git"
|
|
rust_project_dir: "{{ ansible_user_dir }}/openstack"
|
|
download_artifact_job: "codegenerator-rust-all"
|