Skip to content

Commit 51149f6

Browse files
Merge branch 'main' into feature/hpc-support
2 parents 0c8ff0b + 2a14105 commit 51149f6

File tree

2,696 files changed

+1071590
-596
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,696 files changed

+1071590
-596
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Ensure Docs are Compiled
2+
on:
3+
push:
4+
jobs:
5+
ensure-docs-compiled:
6+
runs-on: ubuntu-latest
7+
steps:
8+
- name: Checkout 🛎
9+
uses: actions/checkout@v2
10+
- uses: actions/setup-go@v4
11+
- shell: bash
12+
run: make generate
13+
- shell: bash
14+
run: |
15+
if [[ -z "$(git status -s)" ]]; then
16+
echo "OK"
17+
else
18+
echo "Docs have been updated, but the compiled docs have not been committed."
19+
echo "Run 'make generate', and commit the result to resolve this error."
20+
exit 1
21+
fi
22+
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Manual release workflow is used for deploying documentation updates
2+
# on the specified branch without making an official plugin release.
3+
name: Notify Integration Release (Manual)
4+
on:
5+
workflow_dispatch:
6+
inputs:
7+
version:
8+
description: "The release version (semver)"
9+
default: 1.0.0
10+
required: false
11+
branch:
12+
description: "A branch or SHA"
13+
default: 'main'
14+
required: false
15+
jobs:
16+
notify-release:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout this repo
20+
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
21+
with:
22+
ref: ${{ github.event.inputs.branch }}
23+
# Ensure that Docs are Compiled
24+
- uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
25+
- shell: bash
26+
run: make generate
27+
- shell: bash
28+
run: |
29+
if [[ -z "$(git status -s)" ]]; then
30+
echo "OK"
31+
else
32+
echo "Docs have been updated, but the compiled docs have not been committed."
33+
echo "Run 'make generate', and commit the result to resolve this error."
34+
exit 1
35+
fi
36+
# Perform the Release
37+
- name: Checkout integration-release-action
38+
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
39+
with:
40+
repository: hashicorp/integration-release-action
41+
path: ./integration-release-action
42+
- name: Notify Release
43+
uses: ./integration-release-action
44+
with:
45+
# The integration identifier will be used by the Packer team to register the integration
46+
# the expected format is packer/<GitHub Org Name>/<plugin-name>
47+
integration_identifier: "packer/gridscale/gridscale"
48+
release_version: ${{ github.event.inputs.version }}
49+
release_sha: ${{ github.event.inputs.branch }}
50+
github_token: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Notify Integration Release (Tag)
2+
on:
3+
push:
4+
tags:
5+
- '*.*.*' # Proper releases
6+
jobs:
7+
strip-version:
8+
runs-on: ubuntu-latest
9+
outputs:
10+
packer-version: ${{ steps.strip.outputs.packer-version }}
11+
steps:
12+
- name: Strip leading v from version tag
13+
id: strip
14+
env:
15+
REF: ${{ github.ref_name }}
16+
run: |
17+
echo "packer-version=$(echo "$REF" | sed -E 's/v?([0-9]+\.[0-9]+\.[0-9]+)/\1/')" >> "$GITHUB_OUTPUT"
18+
notify-release:
19+
needs:
20+
- strip-version
21+
runs-on: ubuntu-latest
22+
steps:
23+
- name: Checkout this repo
24+
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
25+
with:
26+
ref: ${{ github.ref }}
27+
# Ensure that Docs are Compiled
28+
- uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
29+
- shell: bash
30+
run: make generate
31+
- shell: bash
32+
run: |
33+
if [[ -z "$(git status -s)" ]]; then
34+
echo "OK"
35+
else
36+
echo "Docs have been updated, but the compiled docs have not been committed."
37+
echo "Run 'make generate', and commit the result to resolve this error."
38+
exit 1
39+
fi
40+
# Perform the Release
41+
- name: Checkout integration-release-action
42+
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
43+
with:
44+
repository: hashicorp/integration-release-action
45+
path: ./integration-release-action
46+
- name: Notify Release
47+
uses: ./integration-release-action
48+
with:
49+
# The integration identifier will be used by the Packer team to register the integration
50+
# the expected format is packer/<GitHub Org Name>/<plugin-name>
51+
integration_identifier: "packer/gridscale/gridscale"
52+
release_version: ${{ needs.strip-version.outputs.packer-version }}
53+
release_sha: ${{ github.ref }}
54+
github_token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/release.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@ jobs:
2525
- name: Set up Go
2626
uses: actions/setup-go@v2
2727
with:
28-
go-version: 1.17
28+
go-version: 1.21
2929
- name: Describe plugin
3030
id: plugin_describe
3131
run: echo "::set-output name=api_version::$(go run . describe | jq -r '.api_version')"
3232
- name: Import GPG key
3333
id: import_gpg
34-
uses: hashicorp/ghaction-import-gpg@v2.1.0
35-
env:
36-
GPG_PRIVATE_KEY: ${{ secrets.RELEASE_SIGNING_KEY }}
37-
PASSPHRASE: ${{ secrets.RELEASE_SIGNING_KEY_PASSPHRASE }}
34+
uses: crazy-max/ghaction-import-gpg@v6
35+
with:
36+
gpg_private_key: ${{ secrets.RELEASE_SIGNING_KEY }}
37+
passphrase: ${{ secrets.RELEASE_SIGNING_KEY_PASSPHRASE }}
3838
- name: Run GoReleaser
3939
uses: goreleaser/goreleaser-action@v2
4040
with:

.goreleaser.yml

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# This is an example goreleaser.yaml file with some sane defaults.
1+
# This is an example goreleaser.yaml file with some defaults.
22
# Make sure to check the documentation at http://goreleaser.com
33
env:
44
- CGO_ENABLED=0
@@ -7,9 +7,6 @@ before:
77
# We strongly recommend running tests to catch any regression before release.
88
# Even though, this an optional step.
99
- go test ./...
10-
# As part of the release doc files are included as a separate deliverable for
11-
# consumption by Packer.io. To include a separate docs.zip uncomment the following command.
12-
- make ci-release-docs
1310
# Check plugin compatibility with required version of the Packer SDK
1411
- make plugin-check
1512
builds:
@@ -33,6 +30,9 @@ builds:
3330
ldflags:
3431
- '-s -w -X {{ .ModulePath }}/version.Version={{.Version}} -X {{ .ModulePath }}/version.VersionPrerelease= '
3532
goos:
33+
- netbsd
34+
- solaris
35+
- openbsd
3636
- freebsd
3737
- windows
3838
- linux
@@ -43,6 +43,8 @@ builds:
4343
- arm
4444
- arm64
4545
ignore:
46+
- goos: openbsd
47+
goarch: arm64
4648
- goos: darwin
4749
goarch: '386'
4850
- goos: linux
@@ -68,13 +70,6 @@ signs:
6870
- "${signature}"
6971
- "--detach-sign"
7072
- "${artifact}"
71-
release:
72-
# If you want to manually examine the release before its live, uncomment this line:
73-
# draft: true
74-
# As part of the release doc files are included as a separate deliverable for consumption by Packer.io.
75-
# To include a separate docs.zip uncomment the extra_files config and the docs.zip command hook above.
76-
extra_files:
77-
- glob: ./docs.zip
7873

7974
changelog:
80-
skip: true
75+
use: github-native

.web-docs/README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
The `gridscale` Packer builder is used to create new (os) templates for use with [gridscale](https://www.gridscale.io/). The builder takes a template (in gridscale) or an iso-image, runs any provisioning necessary on the template/iso-image after launching it, then snapshots it into a reusable template. This reusable template can then be used as the foundation of new servers that are provisioned within gridscale user space.
2+
3+
### Installation
4+
5+
To install this plugin, copy and paste this code into your Packer configuration, then run [`packer init`](https://www.packer.io/docs/commands/init).
6+
7+
```hcl
8+
packer {
9+
required_plugins {
10+
gridscale = {
11+
version = "= 1.0.0"
12+
source = "github.com/gridscale/gridscale"
13+
}
14+
}
15+
}
16+
```
17+
18+
Alternatively, you can use `packer plugins install` to manage installation of this plugin.
19+
20+
```sh
21+
$ packer plugins install github.com/gridscale/gridscale
22+
```
23+
24+
25+
### Components
26+
27+
#### Builders
28+
29+
- [gridscale](/packer/integrations/gridscale/gridscale/latest/components/builder/gridscale) - The builder takes a template (in gridscale) or an iso-image, runs any provisioning necessary on the template/iso-image after launching it, then snapshots it into a reusable template. This reusable template can then be used as the foundation of new servers that are provisioned within gridscale user space.

0 commit comments

Comments
 (0)