mirror of
https://github.com/taigrr/nats.docs
synced 2025-01-18 04:03:23 -08:00
57 lines
1.8 KiB
Markdown
57 lines
1.8 KiB
Markdown
# GitHub Actions
|
|
|
|
We have a pack of GitHub Actions that let you manage an already running JetStream Server, useful for managing releases or standing up test infrastructure.
|
|
|
|
Full details and examples are in the [jetstream-gh-actions](https://github.com/nats-io/jetstream-gh-action) repository, here's an example.
|
|
|
|
```yaml
|
|
on: push
|
|
name: orders
|
|
jobs:
|
|
|
|
# First we delete the ORDERS stream and consumer if they already exist
|
|
clean_orders:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: orders_stream
|
|
uses: nats-io/jetstream-gh-action/delete/stream@master
|
|
with:
|
|
missing_ok: 1
|
|
stream: ORDERS
|
|
server: js.example.net
|
|
|
|
# Now we create the Stream and Consumers using the same configuration files the
|
|
# nats CLI utility would use as shown above
|
|
create_orders:
|
|
runs-on: ubuntu-latest
|
|
needs: clean_orders
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- name: orders_stream
|
|
uses: nats-io/jetstream-gh-action/create/stream@master
|
|
with:
|
|
config: ORDERS.json
|
|
server: js.example.net
|
|
- name: orders_new_consumer
|
|
uses: nats-io/jetstream-gh-action/create/consumer@master
|
|
with:
|
|
config: ORDERS_NEW.json
|
|
stream: ORDERS
|
|
server: js.example.net
|
|
|
|
# We publish a message to a specific Subject, perhaps some consumer is
|
|
# waiting there for it to kick off tests
|
|
publish_message:
|
|
runs-on: ubuntu-latest
|
|
needs: create_orders
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- name: orders_new_consumer
|
|
uses: nats-io/jetstream-gh-action@master
|
|
with:
|
|
subject: ORDERS.deployment
|
|
message: Published new deployment via "${{ github.event_name }}" in "${{ github.repository }}"
|
|
server: js.example.net
|
|
```
|
|
|