name: landing-page description: Deploy a landing page using composable monorepo template version: 1 vars: project_name: "" # Required template: "app-astro" steps: create-project: description: Create project with monorepo skeleton action: api method: POST endpoint: /project body: name: "{{ .vars.project_name }}" description: "Landing page E2E test" outputs: - project_id: .data.name - domain: .data.domain add-component: description: Add landing page component (app-astro) depends_on: [create-project] action: api method: POST endpoint: "/projects/{{ .outputs.create-project.project_id }}/components" body: type: "{{ .vars.template }}" name: landing template: "{{ .vars.template }}" outputs: - component_path: .data.path - component_port: .data.port wait-pipeline: description: Wait for CI pipeline to complete depends_on: [add-component] action: wait_pipeline project_id: "{{ .outputs.create-project.project_id }}" max_attempts: 120 poll_interval: 5 on_error: continue verify-site: description: Verify site is accessible depends_on: [wait-pipeline] action: wait_site domain: "{{ .outputs.create-project.domain }}" project_id: "{{ .outputs.create-project.project_id }}" max_attempts: 30 poll_interval: 5 teardown: - description: Delete project action: api method: DELETE endpoint: "/project/{{ .outputs.create-project.project_id }}"