Skip to content

Commit f65ee79

Browse files
Update README.md and docs (#10)
Co-authored-by: goruha <goruha@users.noreply.github.com>
1 parent de9599d commit f65ee79

File tree

1 file changed

+143
-39
lines changed

1 file changed

+143
-39
lines changed

README.md

Lines changed: 143 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
<!-- markdownlint-disable -->
3-
# example-github-action-composite [![Latest Release](https://img.shields.io/github/release/cloudposse/example-github-action-composite.svg)](https://github.com/cloudposse/example-github-action-composite/releases/latest) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com)
3+
# github-action-yaml-config-query [![Latest Release](https://img.shields.io/github/release/cloudposse/github-action-yaml-config-query.svg)](https://github.com/cloudposse/github-action-yaml-config-query/releases/latest) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com)
44
<!-- markdownlint-restore -->
55

66
[![README Header][readme_header_img]][readme_header_link]
@@ -28,7 +28,7 @@
2828
2929
-->
3030

31-
Template repository of composite GitHub Action
31+
Define YAML document, filter it with JSON query and get result as JSON string
3232

3333
---
3434

@@ -58,8 +58,11 @@ It's 100% Open Source and licensed under the [APACHE2](LICENSE).
5858

5959
## Introduction
6060

61-
This is template repository to create composite GitHub Actions.
62-
Feel free to use it as reference and starting point.
61+
Utility action allow to declare YAML structured document as an input and get it's part as the action outputs
62+
referenced using JQ.
63+
64+
This action is useful in simplifing complext GitHub action workflows in different ways.
65+
For examples follow [usage](#usage) section.
6366

6467

6568

@@ -69,6 +72,7 @@ Feel free to use it as reference and starting point.
6972

7073

7174

75+
### Define constants
7276
```yaml
7377
name: Pull Request
7478
on:
@@ -77,17 +81,117 @@ Feel free to use it as reference and starting point.
7781
types: [opened, synchronize, reopened, closed, labeled, unlabeled]
7882

7983
jobs:
80-
context:
84+
demo:
85+
runs-on: ubuntu-latest
86+
steps:
87+
- name: Context
88+
id: context
89+
uses: cloudposse/github-action-yaml-config-query@main
90+
with:
91+
config: |
92+
image: acme/example
93+
tag: sha-${{ github.sha }}
94+
95+
- run: |
96+
docker run ${{ steps.context.outputs.image }}:${{ steps.context.outputs.tag }}
97+
```
98+
99+
### Implement if/else
100+
```yaml
101+
name: Promote
102+
on:
103+
workflow_call:
104+
inputs:
105+
from:
106+
required: false
107+
type: string
108+
109+
jobs:
110+
demo:
81111
runs-on: ubuntu-latest
82112
steps:
83-
- name: Example action
84-
uses: cloudposse/example-github-action-composite@main
85-
id: example
113+
- name: Context
114+
id: from
115+
uses: cloudposse/github-action-yaml-config-query@main
86116
with:
87-
param1: true
117+
query: .${{ inputs.from == '' }}
118+
config: |-
119+
true:
120+
tag: ${{ github.sha }}
121+
false:
122+
tag: ${{ inputs.from }}
123+
124+
- run: |
125+
docker tag acme/example:${{ steps.context.outputs.tag }}
126+
```
88127
128+
### Implement switch
129+
```yaml
130+
name: Build
131+
on:
132+
pull_request:
133+
branches: [ 'main' ]
134+
types: [opened, synchronize, reopened]
135+
push:
136+
branches: [ main ]
137+
release:
138+
types: [published]
139+
140+
jobs:
141+
context:
142+
runs-on: ubuntu-latest
143+
steps:
144+
- name: Context
145+
id: controller
146+
uses: cloudposse/github-action-yaml-config-query@main
147+
with:
148+
query: .${{ github.event_name }}
149+
config: |-
150+
pull_request:
151+
build: true
152+
promote: false
153+
test: true
154+
deploy: ["preview"]
155+
push:
156+
build: true
157+
promote: false
158+
test: true
159+
deploy: ["dev"]
160+
release:
161+
build: false
162+
promote: true
163+
test: false
164+
deploy: ["staging", "production"]
89165
outputs:
90-
result: ${{ steps.example.outputs.result1 }}
166+
build: ${{ steps.controlle.outputs.build }}
167+
promote: ${{ steps.controlle.outputs.promote }}
168+
test: ${{ steps.controlle.outputs.test }}
169+
deploy: ${{ steps.controlle.outputs.deploy }}
170+
171+
build:
172+
needs: [context]
173+
if: ${{ needs.context.outputs.build }}
174+
uses: ./.github/workflows/reusable-build.yaml
175+
176+
test:
177+
needs: [context, test]
178+
if: ${{ needs.context.outputs.test }}
179+
uses: ./.github/workflows/reusable-test.yaml
180+
181+
promote:
182+
needs: [context]
183+
if: ${{ needs.context.outputs.promote }}
184+
uses: ./.github/workflows/reusable-promote.yaml
185+
186+
deploy:
187+
needs: [context]
188+
if: ${{ needs.context.outputs.deploy != '[]' }}
189+
strategy:
190+
matrix:
191+
environment: ${{ fromJson(needs.context.outputs.deploy) }}
192+
uses: ./.github/workflows/reusable-deploy.yaml
193+
with:
194+
environment: ${{ matrix.environment }}
91195
```
92196
93197
@@ -111,7 +215,7 @@ Feel free to use it as reference and starting point.
111215
112216
## Share the Love
113217
114-
Like this project? Please give it a ★ on [our GitHub](https://github.com/cloudposse/example-github-action-composite)! (it helps us **a lot**)
218+
Like this project? Please give it a ★ on [our GitHub](https://github.com/cloudposse/github-action-yaml-config-query)! (it helps us **a lot**)
115219
116220
Are you using this project or any of our other projects? Consider [leaving a testimonial][testimonial]. =)
117221
@@ -135,7 +239,7 @@ For additional context, refer to some of these links.
135239
136240
**Got a question?** We got answers.
137241
138-
File a GitHub [issue](https://github.com/cloudposse/example-github-action-composite/issues), send us an [email][email] or join our [Slack Community][slack].
242+
File a GitHub [issue](https://github.com/cloudposse/github-action-yaml-config-query/issues), send us an [email][email] or join our [Slack Community][slack].
139243
140244
[![README Commercial Support][readme_commercial_support_img]][readme_commercial_support_link]
141245
@@ -183,7 +287,7 @@ Sign up for [our newsletter][newsletter] that covers everything on our technolog
183287
184288
### Bug Reports & Feature Requests
185289
186-
Please use the [issue tracker](https://github.com/cloudposse/example-github-action-composite/issues) to report any bugs or file feature requests.
290+
Please use the [issue tracker](https://github.com/cloudposse/github-action-yaml-config-query/issues) to report any bugs or file feature requests.
187291
188292
### Developing
189293
@@ -271,33 +375,33 @@ Check out [our other projects][github], [follow us on twitter][twitter], [apply
271375
[![Beacon][beacon]][website]
272376
<!-- markdownlint-disable -->
273377
[logo]: https://cloudposse.com/logo-300x69.svg
274-
[docs]: https://cpco.io/docs?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=docs
275-
[website]: https://cpco.io/homepage?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=website
276-
[github]: https://cpco.io/github?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=github
277-
[jobs]: https://cpco.io/jobs?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=jobs
278-
[hire]: https://cpco.io/hire?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=hire
279-
[slack]: https://cpco.io/slack?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=slack
280-
[linkedin]: https://cpco.io/linkedin?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=linkedin
281-
[twitter]: https://cpco.io/twitter?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=twitter
282-
[testimonial]: https://cpco.io/leave-testimonial?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=testimonial
283-
[office_hours]: https://cloudposse.com/office-hours?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=office_hours
284-
[newsletter]: https://cpco.io/newsletter?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=newsletter
285-
[discourse]: https://ask.sweetops.com/?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=discourse
286-
[email]: https://cpco.io/email?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=email
287-
[commercial_support]: https://cpco.io/commercial-support?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=commercial_support
288-
[we_love_open_source]: https://cpco.io/we-love-open-source?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=we_love_open_source
289-
[terraform_modules]: https://cpco.io/terraform-modules?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=terraform_modules
378+
[docs]: https://cpco.io/docs?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=docs
379+
[website]: https://cpco.io/homepage?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=website
380+
[github]: https://cpco.io/github?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=github
381+
[jobs]: https://cpco.io/jobs?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=jobs
382+
[hire]: https://cpco.io/hire?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=hire
383+
[slack]: https://cpco.io/slack?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=slack
384+
[linkedin]: https://cpco.io/linkedin?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=linkedin
385+
[twitter]: https://cpco.io/twitter?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=twitter
386+
[testimonial]: https://cpco.io/leave-testimonial?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=testimonial
387+
[office_hours]: https://cloudposse.com/office-hours?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=office_hours
388+
[newsletter]: https://cpco.io/newsletter?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=newsletter
389+
[discourse]: https://ask.sweetops.com/?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=discourse
390+
[email]: https://cpco.io/email?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=email
391+
[commercial_support]: https://cpco.io/commercial-support?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=commercial_support
392+
[we_love_open_source]: https://cpco.io/we-love-open-source?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=we_love_open_source
393+
[terraform_modules]: https://cpco.io/terraform-modules?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=terraform_modules
290394
[readme_header_img]: https://cloudposse.com/readme/header/img
291-
[readme_header_link]: https://cloudposse.com/readme/header/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=readme_header_link
395+
[readme_header_link]: https://cloudposse.com/readme/header/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=readme_header_link
292396
[readme_footer_img]: https://cloudposse.com/readme/footer/img
293-
[readme_footer_link]: https://cloudposse.com/readme/footer/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=readme_footer_link
397+
[readme_footer_link]: https://cloudposse.com/readme/footer/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=readme_footer_link
294398
[readme_commercial_support_img]: https://cloudposse.com/readme/commercial-support/img
295-
[readme_commercial_support_link]: https://cloudposse.com/readme/commercial-support/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/example-github-action-composite&utm_content=readme_commercial_support_link
296-
[share_twitter]: https://twitter.com/intent/tweet/?text=example-github-action-composite&url=https://github.com/cloudposse/example-github-action-composite
297-
[share_linkedin]: https://www.linkedin.com/shareArticle?mini=true&title=example-github-action-composite&url=https://github.com/cloudposse/example-github-action-composite
298-
[share_reddit]: https://reddit.com/submit/?url=https://github.com/cloudposse/example-github-action-composite
299-
[share_facebook]: https://facebook.com/sharer/sharer.php?u=https://github.com/cloudposse/example-github-action-composite
300-
[share_googleplus]: https://plus.google.com/share?url=https://github.com/cloudposse/example-github-action-composite
301-
[share_email]: mailto:?subject=example-github-action-composite&body=https://github.com/cloudposse/example-github-action-composite
302-
[beacon]: https://ga-beacon.cloudposse.com/UA-76589703-4/cloudposse/example-github-action-composite?pixel&cs=github&cm=readme&an=example-github-action-composite
399+
[readme_commercial_support_link]: https://cloudposse.com/readme/commercial-support/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-yaml-config-query&utm_content=readme_commercial_support_link
400+
[share_twitter]: https://twitter.com/intent/tweet/?text=github-action-yaml-config-query&url=https://github.com/cloudposse/github-action-yaml-config-query
401+
[share_linkedin]: https://www.linkedin.com/shareArticle?mini=true&title=github-action-yaml-config-query&url=https://github.com/cloudposse/github-action-yaml-config-query
402+
[share_reddit]: https://reddit.com/submit/?url=https://github.com/cloudposse/github-action-yaml-config-query
403+
[share_facebook]: https://facebook.com/sharer/sharer.php?u=https://github.com/cloudposse/github-action-yaml-config-query
404+
[share_googleplus]: https://plus.google.com/share?url=https://github.com/cloudposse/github-action-yaml-config-query
405+
[share_email]: mailto:?subject=github-action-yaml-config-query&body=https://github.com/cloudposse/github-action-yaml-config-query
406+
[beacon]: https://ga-beacon.cloudposse.com/UA-76589703-4/cloudposse/github-action-yaml-config-query?pixel&cs=github&cm=readme&an=github-action-yaml-config-query
303407
<!-- markdownlint-restore -->

0 commit comments

Comments
 (0)