Skip to content

Commit

Permalink
Build and docs tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
politician committed Aug 9, 2021
1 parent 606a7ba commit 7e85cd3
Show file tree
Hide file tree
Showing 7 changed files with 107 additions and 81 deletions.
25 changes: 10 additions & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,44 +1,39 @@
# This GitHub action can publish assets for release when a tag is created.
# Currently its setup to run on any tag that matches the pattern "v*" (ie. v0.1.0).
#
# This uses an action (hashicorp/ghaction-import-gpg) that assumes you set your
# private key in the `GPG_PRIVATE_KEY` secret and passphrase in the `PASSPHRASE`
# This uses an action (hashicorp/ghaction-import-gpg) that assumes you set your
# private key in the `GPG_PRIVATE_KEY` secret and passphrase in the `GPG_PASSPHRASE`
# secret. If you would rather own your own GPG handling, please fork this action
# or use an alternative one for key handling.
#
# You will need to pass the `--batch` flag to `gpg` in your signing step
# You will need to pass the `--batch` flag to `gpg` in your signing step
# in `goreleaser` to indicate this is being used in a non-interactive mode.
#
name: release
on:
push:
tags:
- 'v*'
- "v*"
jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
-
name: Checkout
- name: Checkout
uses: actions/checkout@v2.3.4
-
name: Unshallow
- name: Unshallow
run: git fetch --prune --unshallow
-
name: Set up Go
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.14
-
name: Import GPG key
- name: Import GPG key
id: import_gpg
uses: hashicorp/ghaction-import-gpg@v2.1.0
env:
# These secrets will need to be configured for the repository:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
PASSPHRASE: ${{ secrets.PASSPHRASE }}
-
name: Run GoReleaser
PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2.5.0
with:
version: latest
Expand Down
81 changes: 39 additions & 42 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ name: Tests
on:
pull_request:
paths-ignore:
- 'README.md'
- "README.md"
push:
paths-ignore:
- 'README.md'
- "README.md"
# For systems with an upstream API that could drift unexpectedly (like most SaaS systems, etc.),
# we recommend testing at a regular interval not necessarily tied to code changes. This will
# we recommend testing at a regular interval not necessarily tied to code changes. This will
# ensure you are alerted to something breaking due to an API change, even if the code did not
# change.
# schedule:
Expand All @@ -22,23 +22,22 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Set up Go
uses: actions/setup-go@v2.1.3
with:
go-version: "1.16"
id: go

- name: Set up Go
uses: actions/setup-go@v2.1.3
with:
go-version: '1.15'
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2.3.4

- name: Check out code into the Go module directory
uses: actions/checkout@v2.3.4
- name: Get dependencies
run: |
go mod download
- name: Get dependencies
run: |
go mod download
- name: Build
run: |
go build -v .
- name: Build
run: |
go build -v .
# run acceptance tests in a matrix with Terraform core versions
test:
Expand All @@ -51,34 +50,32 @@ jobs:
matrix:
# list whatever Terraform versions here you would like to support
terraform:
- '0.12.29'
- '0.13.4'
- '0.14.0-beta2'
- "0.15"
- "1.0"
steps:
- name: Set up Go
uses: actions/setup-go@v2.1.3
with:
go-version: "1.16"
id: go

- name: Set up Go
uses: actions/setup-go@v2.1.3
with:
go-version: '1.15'
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2.3.4

- name: Check out code into the Go module directory
uses: actions/checkout@v2.3.4
- name: Get dependencies
run: |
go mod download
- name: Get dependencies
run: |
go mod download
- name: TF acceptance tests
timeout-minutes: 10
env:
TF_ACC: "1"
TF_ACC_TERRAFORM_VERSION: ${{ matrix.terraform }}
- name: TF acceptance tests
timeout-minutes: 10
env:
TF_ACC: "1"
TF_ACC_TERRAFORM_VERSION: ${{ matrix.terraform }}

# Set whatever additional acceptance test env vars here. You can
# optionally use data from your repository secrets using the
# following syntax:
# SOME_VAR: ${{ secrets.SOME_VAR }}
# Set whatever additional acceptance test env vars here. You can
# optionally use data from your repository secrets using the
# following syntax:
# SOME_VAR: ${{ secrets.SOME_VAR }}

run: |
go test -v -cover ./internal/provider/
run: |
go test -v -cover ./internal/provider/
25 changes: 17 additions & 8 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,29 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "gpg Provider"
page_title: "GPG Provider"
subcategory: ""
description: |-
The GPG provider provides resources to generate a private/public key pair.
---

# gpg Provider

# GPG Provider

The GPG provider provides resources to generate a private/public key pair.

## Example Usage

```terraform
provider "gpg" {}
terraform {
required_providers {
gpg = {
source = "Olivr/gpg"
}
}
}
```

<!-- schema generated by tfplugindocs -->
## Schema
```terraform
resource "gpg_private_key" "key" {
name = "John Doe"
email = "john@doe.com"
}
```
12 changes: 6 additions & 6 deletions docs/resources/private_key.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
page_title: "gpg_private_key Resource - terraform-provider-gpg"
subcategory: ""
description: |-
The resource private_key generates a GPG private/public key pair.
The resource private_key generates a GPG private/public key pair in ASCII-armored format.
---

# gpg_private_key (Resource)

The resource `private_key` generates a GPG private/public key pair.
The resource `private_key` generates a GPG private/public key pair in ASCII-armored format.

## Example Usage

Expand All @@ -30,12 +30,12 @@ resource "gpg_private_key" "key" {
### Optional

- **id** (String) The ID of this resource.
- **rsa_bits** (Number) Number of bits to use when generating RSA key
- **rsa_bits** (Number) Number of bits to use when generating RSA key.

### Read-Only

- **fingerprint** (String)
- **private_key** (String, Sensitive)
- **public_key** (String)
- **fingerprint** (String) Public key fingerprint.
- **private_key** (String, Sensitive) Generated private key in ASCII-armored format.
- **public_key** (String) Generated public key in ASCII-armored format.


8 changes: 7 additions & 1 deletion examples/provider/provider.tf
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
provider "gpg" {}
terraform {
required_providers {
gpg = {
source = "Olivr/gpg"
}
}
}
21 changes: 12 additions & 9 deletions internal/provider/resource_private_key.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
func resourcePrivateKey() *schema.Resource {
return &schema.Resource{
// This description is used by the documentation generator and the language server.
Description: "The resource `private_key` generates a GPG private/public key pair.",
Description: "The resource `private_key` generates a GPG private/public key pair in ASCII-armored format.",
CreateContext: resourcePrivateKeyCreate,
ReadContext: resourcePrivateKeyRead,
DeleteContext: resourcePrivateKeyDelete,
Expand All @@ -34,25 +34,28 @@ func resourcePrivateKey() *schema.Resource {
"rsa_bits": {
Type: schema.TypeInt,
Optional: true,
Description: "Number of bits to use when generating RSA key",
Description: "Number of bits to use when generating RSA key.",
ForceNew: true,
Default: 4096,
},

"private_key": {
Type: schema.TypeString,
Computed: true,
Sensitive: true,
Type: schema.TypeString,
Description: "Generated private key in ASCII-armored format.",
Computed: true,
Sensitive: true,
},

"public_key": {
Type: schema.TypeString,
Computed: true,
Type: schema.TypeString,
Description: "Generated public key in ASCII-armored format.",
Computed: true,
},

"fingerprint": {
Type: schema.TypeString,
Computed: true,
Type: schema.TypeString,
Description: "Public key fingerprint.",
Computed: true,
},
},
}
Expand Down
16 changes: 16 additions & 0 deletions templates/index.md.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
page_title: "GPG Provider"
subcategory: ""
description: |-
The GPG provider provides resources to generate a private/public key pair.
---

# GPG Provider

The GPG provider provides resources to generate a private/public key pair.

## Example Usage

{{tffile "examples/provider/provider.tf"}}

{{tffile "examples/resources/gpg_private_key/resource.tf"}}

0 comments on commit 7e85cd3

Please sign in to comment.