-
Notifications
You must be signed in to change notification settings - Fork 2
/
action.yaml
116 lines (116 loc) · 5.49 KB
/
action.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# test action creation following https://www.philschmid.de/create-custom-github-action-in-4-steps
name: 'Interact with Lifebit CloudOS with cloudos-cli'
branding:
icon: 'cloud'
color: 'blue'
description: 'Interact with Lifebit CloudOS programmatically using the lifebit-ai/cloudos-cli'
inputs:
apikey:
description: 'Lifebit CloudOS user personal API token'
required: true
cloudos_url:
description: 'The Lifebit CloudOS application hostname without a trailing backslash eg https://cloudos.lifebit.ai'
required: true
workspace_id:
description: 'The Lifebit CloudOS workspace id. It Can be found under Settings in the web application.'
required: true
project_name:
description: 'The Lifebit CloudOS workspace id. It can be created and selected from the Lifebit CloudOS web application user interface under Projects.'
required: true
workflow_name:
description: 'The Lifebit CloudOS workflow name. It can be created and selected from the Lifebit CloudOS web application user interface under Pipelines & Tools.'
required: true
job_config:
description: 'A local file with suffix .config, that includes only a params scope enclosed in curly brackets. The file should contain parameter key:value pairs. For example see: https://github.com/lifebit-ai/cloudos-cli/blob/dev/cloudos/examples/rnatoy.config'
required: false
nextflow_profile:
description: 'One or many comma separated strings, indicating the nextflow profile/s to use with your job. Only applicable to Nextflow workflows.'
required: false
git_commit:
description: 'The exact whole 40 character commit hash to run for the selected pipeline. If not specified it defaults to the last commit of the default branch.'
required: false
git_tag:
description: 'The version tag of the chosen workflow repository. It must exist in the repository'
required: false
job_name:
description: 'A name to assign to the job run.'
required: true
default: job-via-github-actions-ci
execution_platform:
description: 'Name of the cloud provider used in your CloudOS workspace. Available options: [aws, azure]. Default: aws'
required: false
instance_type:
description: 'Name of the virtual machine type as defined by the respective cloud provider to use as master node for the job. Default conditional to the cloud provider: c5.xlarge (aws) or Standard_D4as_v4 (azure).'
required: false
instance_disk:
description: 'Disk storage in GB to be used for the master node vm.'
required: false
storage_mode:
description: 'The storage mode to use. Available options: [regular,lustre]. Regular is EBS.'
required: false
lustre_size:
description: 'The lustre storage to be used when --storage-mode=lustre, in GB. It should be 1200 or a multiple of it.'
required: false
wait_time:
description: 'Max time to wait (in seconds) to job completion'
required: false
wdl_mainfile:
description: 'For WDL workflows, which mainFile (.wdl) is configured to use (string). This is defined when the WDL repository is imported under Pipelines & Tools using the Lifebit CloudOS web application user interface.'
required: false
wdl_importsfile:
description: 'For WDL workflows, which importsFile (.zip) is configured to use (string). This is defined when the WDL repository is imported under Pipelines & Tools using the Lifebit CloudOS web application user interface.'
required: false
cromwell_token:
description: 'Specific Cromwell server authentication token. Only required for WDL jobs'
required: false
repository_platform:
description: 'Name of the repository platform of the workflow. Default=github.'
required: false
request_interval:
description: 'Request interval in seconds. The options is influencing the request interval for receiving the job status when --wait-completion is used'
required: false
job_queue:
description: "Name of the job batch queue to use with a batch job execution. Default: workspace default."
required: false
cost_limit:
description: 'Cost limit in USD. If the job exceeds the defined cost limit, the job will be aborted. It is advised to always use a cost limit.'
required: false
cloudos_cli_flags:
description: 'Additional cloudos-cli flags, space separated eg "--resumable". Available options: [--resumable, --verbose, --wait-completion]'
required: false
default: ''
dry_run:
description: 'Mode of execution for the action, by default the API call will be sent. Set to dry_run: true if you only want to print the command (strips secrets before printing).'
required: false
outputs:
job_id:
description: 'Job ID from Lifebit CloudOS cloudos-cli'
runs:
using: 'docker'
image: 'Dockerfile'
args:
- ${{ inputs.apikey }}
- ${{ inputs.cloudos_url }}
- ${{ inputs.workspace_id }}
- ${{ inputs.project_name }}
- ${{ inputs.workflow_name }}
- ${{ inputs.job_config }}
- ${{ inputs.nextflow_profile }}
- ${{ inputs.git_commit }}
- ${{ inputs.git_tag }}
- ${{ inputs.job_name }}
- ${{ inputs.execution_platform }}
- ${{ inputs.instance_type }}
- ${{ inputs.instance_disk }}
- ${{ inputs.storage_mode }}
- ${{ inputs.lustre_size }}
- ${{ inputs.wait_time }}
- ${{ inputs.wdl_mainfile }}
- ${{ inputs.wdl_importsfile }}
- ${{ inputs.cromwell_token }}
- ${{ inputs.repository_platform }}
- ${{ inputs.request_interval}}
- ${{ inputs.job_queue}}
- ${{ inputs.cost_limit}}
- ${{ inputs.cloudos_cli_flags}}
- ${{ inputs.dry_run}}