Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 28 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,39 @@ A GitHub Action to install and configure [`quantum-cli`](https://cli.planetary-q

## Inputs

| Input | Required | Description |
|-------|----------|-------------|
| `username` | Yes | Your Quantum username |
| `password` | Yes | Your Quantum password |
You must provide **either** `api-key` **or** both `username` and `password`. You cannot use both methods together.

| Input | Description |
|-------|-------------|
| `api-key` | Your Quantum API key (recommended) |
| `username` | Your Quantum username (**deprecated**, use `api-key` instead) |
| `password` | Your Quantum password (**deprecated**, use `api-key` instead) |

## Usage

For detailed documentation on the `quantum-cli`, please refer to our [docs](https://docs.planetary-quantum.com/).

### Basic example
### Using API key (recommended)

```yaml
steps:
- uses: hostwithquantum/setup-quantum-cli@main
with:
api-key: ${{ secrets.QUANTUM_API_KEY }}
- run: quantum-cli auth status
```

### Using username/password (deprecated)

> **Warning**: username/password authentication is deprecated. Please migrate to `api-key`.

```yaml
steps:
- uses: hostwithquantum/setup-quantum-cli@main
with:
username: ${{ secrets.QUANTUM_USERNAME }}
password: ${{ secrets.QUANTUM_PASSWORD }}

- run: quantum-cli validate
- run: quantum-cli auth status
```

### Full workflow example
Expand All @@ -57,13 +71,12 @@ jobs:
- uses: actions/checkout@v6
- uses: hostwithquantum/setup-quantum-cli@main
with:
username: ${{ secrets.QUANTUM_USERNAME }}
password: ${{ secrets.QUANTUM_PASSWORD }}
api-key: ${{ secrets.QUANTUM_API_KEY }}
- run: quantum-cli auth status
- run: quantum-cli stack deploy
env:
QUANTUM_ENDPOINT: my-cluster
QUANTUM_SATCK: my-app
QUANTUM_STACK: my-app
```

### Windows example
Expand All @@ -76,15 +89,18 @@ jobs:
- uses: actions/checkout@v6
- uses: hostwithquantum/setup-quantum-cli@main
with:
username: ${{ secrets.QUANTUM_USERNAME }}
password: ${{ secrets.QUANTUM_PASSWORD }}
api-key: ${{ secrets.QUANTUM_API_KEY }}
- run: quantum-cli.exe auth status
```

## Environment variables

The action sets the following environment variables for subsequent steps:

When using API key:
- `QUANTUM_API_KEY` — your API key

When using username/password (deprecated):
- `QUANTUM_USER` — your username
- `QUANTUM_PASSWORD` — your password

Expand Down
43 changes: 37 additions & 6 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,39 @@ branding:
color: 'red'
inputs:
username:
required: true
description: username
required: false
description: Your Quantum username (required if not using api-key)
password:
required: true
description: password
required: false
description: Your Quantum password (required if not using api-key)
api-key:
required: false
description: Your Quantum API key (alternative to username/password)
runs:
using: "composite"
steps:
- name: validate inputs
run: |
HAS_USERNAME="${{ inputs.username != '' }}"
HAS_PASSWORD="${{ inputs.password != '' }}"
HAS_API_KEY="${{ inputs.api-key != '' }}"

if [ "$HAS_API_KEY" = "true" ]; then
if [ "$HAS_USERNAME" = "true" ] || [ "$HAS_PASSWORD" = "true" ]; then
echo "::error title=Invalid inputs::Cannot use api-key together with username/password. Use either api-key OR username+password."
exit 1
fi
else
if [ "$HAS_USERNAME" != "true" ] || [ "$HAS_PASSWORD" != "true" ]; then
echo "::error title=Missing credentials::Must provide either api-key OR both username and password."
exit 1
fi
fi
shell: bash
- name: deprecation warning (username/password)
if: inputs.api-key == ''
run: echo "::warning title=Deprecated::username/password authentication is deprecated. Please migrate to api-key."
shell: bash
- name: install quantum-cli (Linux)
if: runner.os == 'Linux'
run: |
Expand Down Expand Up @@ -68,7 +93,13 @@ runs:
if: runner.os == 'Windows'
run: quantum-cli.exe -v
shell: pwsh
- run: echo "QUANTUM_USER=${{ inputs.username }}" >> "$GITHUB_ENV"
- name: set credentials (username/password)
if: inputs.api-key == ''
run: |
echo "QUANTUM_USER=${{ inputs.username }}" >> "$GITHUB_ENV"
echo "QUANTUM_PASSWORD=${{ inputs.password }}" >> "$GITHUB_ENV"
shell: bash
- run: echo "QUANTUM_PASSWORD=${{ inputs.password }}" >> "$GITHUB_ENV"
- name: set credentials (api-key)
if: inputs.api-key != ''
run: echo "QUANTUM_API_KEY=${{ inputs.api-key }}" >> "$GITHUB_ENV"
shell: bash
Loading