galoy-cli 0.1.7

A CLI Client for interacting with Galoy Backend
Documentation
#@ load("@ytt:data", "data")

#@ load("vendor/pipeline-fragments.lib.yml",
#@   "rust_check_code",
#@   "repo_resource",
#@   "edge_image_resource",
#@   "version_resource",
#@   "gh_release_resource",
#@   "pipeline_tasks_resource",
#@   "release_task_image_config",
#@   "rust_task_image_config",
#@   "charts_repo_resource",
#@   "charts_repo_bot_branch",
#@   "slack_resource_type",
#@   "slack_resource",
#@   "slack_failure_notification",
#@   "test_on_docker_host",
#@   "docker_host_pool"
#@ )

groups:
- name: all
  jobs:
    - check-code
    - release
    - publish-to-crates
    - set-dev-version

jobs:
- #@ rust_check_code()

- name: release
  serial: true
  plan:
  - in_parallel:
    - get: repo
      passed:
      - check-code
    - get: pipeline-tasks
    - get: version
  - task: prep-release
    config:
      platform: linux
      image_resource: #@ release_task_image_config()
      inputs:
      - name: pipeline-tasks
      - name: repo
      - name: version
      outputs:
      - name: version
      - name: artifacts
      run:
        path: pipeline-tasks/ci/vendor/tasks/prep-release-src.sh
  - task: update-repo
    config:
      platform: linux
      image_resource: #@ rust_task_image_config()
      inputs:
      - name: artifacts
      - name: pipeline-tasks
      - name: repo
      - name: version
      outputs:
      - name: repo
      run:
        path: pipeline-tasks/ci/tasks/update-repo.sh
  - in_parallel:
    - task: build-osx-release
      privileged: true
      config:
        platform: linux
        image_resource:
          type: registry-image
          source:
            username: #@ data.values.osxcross_docker_username
            password: #@ data.values.osxcross_docker_password
            repository: #@ data.values.osxcross_repository
        inputs:
        - name: version
        - name: pipeline-tasks
        - name: repo
        outputs:
        - name: x86_64-apple-darwin
        caches:
        - path: cargo-home
        - path: cargo-target-dir
        params:
          TARGET: x86_64-apple-darwin
          OUT: x86_64-apple-darwin
        run:
          path: pipeline-tasks/ci/tasks/build-release.sh
    - task: build-static-release
      privileged: true
      config:
        platform: linux
        image_resource:
          type: registry-image
          source: { repository: clux/muslrust, tag: stable }
        inputs:
        - name: version
        - name: pipeline-tasks
        - name: repo
        outputs:
        - name: x86_64-unknown-linux-musl
        caches:
        - path: cargo-home
        - path: cargo-target-dir
        params:
          TARGET: x86_64-unknown-linux-musl
          OUT: x86_64-unknown-linux-musl
        run:
          path: pipeline-tasks/ci/tasks/build-release.sh
  - task: prep-github-release
    config:
      image_resource: #@ release_task_image_config()
      platform: linux
      inputs:
      - name: x86_64-apple-darwin
      - name: x86_64-unknown-linux-musl
      - name: version
      - name: pipeline-tasks
      - name: artifacts
      outputs:
      - name: artifacts
      run:
        path: pipeline-tasks/ci/tasks/prep-github-release.sh
  - put: repo
    params:
      tag: artifacts/gh-release-tag
      repository: repo
      merge: true
  - put: gh-release
    params:
      name: artifacts/gh-release-name
      tag: artifacts/gh-release-tag
      body: artifacts/gh-release-notes.md
      globs: [artifacts/binaries/*]
  - put: version
    params:
      file: version/version

- name: publish-to-crates
  plan:
  - in_parallel:
    - { get: repo, passed: [release], trigger: true }
    - get: pipeline-tasks
    - get: version
  - task: publish-to-crates
    config:
      image_resource: #@ rust_task_image_config()
      platform: linux
      inputs:
      - name: version
      - name: pipeline-tasks
      - name: repo
      params:
        CRATES_API_TOKEN: #@ data.values.crates_api_token
      caches:
      - path: cargo-home
      - path: cargo-target-dir
      run:
        path: pipeline-tasks/ci/tasks/publish-to-crates.sh

- name: set-dev-version
  plan:
  - in_parallel:
    - { get: repo, passed: [release] }
    - { get: pipeline-tasks }
    - get: version
      trigger: true
      params: { bump: patch }
      passed: [release]
  - task: set-dev-version
    config:
      image_resource: #@ rust_task_image_config()
      platform: linux
      inputs:
      - name: version
      - name: repo
      - name: pipeline-tasks
      outputs:
      - name: repo
      run:
        path: pipeline-tasks/ci/tasks/set-dev-version.sh
  - put: repo
    params:
      repository: repo
      rebase: true

resources:
- #@ repo_resource(True)
- #@ pipeline_tasks_resource()
- #@ slack_resource()
- #@ version_resource()
- #@ gh_release_resource()

resource_types:
- #@ slack_resource_type()