Skip to content

Commit

Permalink
chore: initial templates
Browse files Browse the repository at this point in the history
  • Loading branch information
caerulescens committed Aug 28, 2024
1 parent b18c037 commit 5f2a81e
Show file tree
Hide file tree
Showing 24 changed files with 1,704 additions and 1 deletion.
14 changes: 14 additions & 0 deletions .env.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
TFLOG=
TF_LOG_PATH=
TF_INPUT=
#TF_VAR_name=
#TF_CLI_ARGS=
#TF_CLI_ARGS_name=
TF_DATA_DIR=
TF_WORKSPACE=
TF_IN_AUTOMATION=
TF_REGISTRY_DISCOVERY_RETRY=
TF_REGISTRY_CLIENT_TIMEOUT=
TF_CLI_CONFIG_FILE=
TF_PLUGIN_CACHE_DIR=
TF_IGNORE=
47 changes: 47 additions & 0 deletions .github/ISSUE_TEMPLATE/1-FEATURE-REQUEST.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: "💡 Feature Request"
description: "Create a new ticket for a new feature request."
title: "feat: <title>"
labels:
- "enhancement"
assignees:
- "caerulescens"
body:
# Feature
- type: textarea
id: summary
attributes:
label: "Summary"
description: What feature would you like to add?
placeholder: ...
validations:
required: true

# Implementation
- type: textarea
id: implementation
attributes:
label: "Implementation"
description: How would the feature work in more detail?
placeholder: ...
validations:
required: true

# Drawbacks
- type: textarea
id: drawback
attributes:
label: "Drawbacks"
description: What drawbacks does this feature have?
placeholder: ...
validations:
required: false

# Questions
- type: textarea
id: question
attributes:
label: "Questions"
description: Are there any unsolved question related to the feature?
placeholder: ...
validations:
required: false
87 changes: 87 additions & 0 deletions .github/ISSUE_TEMPLATE/2-BUG-REPORT.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: "🐞 Bug Report"
description: "Create a new issue for a bug."
title: "fix: <title>"
labels:
- "bug"
assignees:
- "caerulescens"
body:
# Version
- type: textarea
id: version
attributes:
label: "Version"
description: Which version were you running?
placeholder: e.g. '0.1.0'
validations:
required: true

# Terraform Version
- type: textarea
id: terraform-version
attributes:
label: "Terraform version"
description: Which terraform version were you using?
placeholder: e.g. '1.8.5'
validations:
required: true

# Operating System
- type: dropdown
id: operating-system
attributes:
label: "Operating system"
description: Which operating system were you using?
multiple: false
options:
- Windows
- macOS
- GNU/Linux
validations:
required: true

# Description
- type: textarea
id: description
attributes:
label: "Description"
description: Provide details of the issue you encountered
placeholder: ...
validations:
required: true

# Reproduction
- type: textarea
id: reproduction
attributes:
label: "Reproduction"
description: Provide details on how to reproduce the issue
placeholder: |
#. Use config '...'
#. Run program '...'
#. See error '...'
render: bash
validations:
required: true

# Screenshots
- type: textarea
id: screenshot
attributes:
label: "Screenshots"
description: Provide any relevant screenshots
value: |
![DESCRIPTION](LINK.png)
render: bash
validations:
required: false

# Logs
- type: textarea
id: log
attributes:
label: "Logs"
description: Provide any raw log output
render: bash
validations:
required: false
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Genericware Discussions
url: https://github.com/orgs/genericware/discussions
about: Please ask and answer questions here.
28 changes: 28 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->

## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->
<!--- If it fixes an open issue, please link to the issue here. -->

## How has this been tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, tests ran to see how -->
<!--- your change affects other areas of the code, etc. -->

## Screenshots (if appropriate):

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
64 changes: 64 additions & 0 deletions .github/actions/terraform-init/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Terraform Init
description: Run `terraform init` with optional caching

inputs:
args:
description: Arguments for `terraform init`
terraform-version:
description: Desired semver compatible Terraform version
required: true
cache:
description: Enable caching terraform project files
default: 'true'

outputs:
terraform-version:
description: The Terraform version setup
value: ${{ steps.version-terraform.outputs.terraform-version }}
cache-hit:
description: Whether an exact cache hit occurred
value: ${{ steps.cache.outputs.cache-hit }}

runs:
using: composite
steps:
- name: Setup Terraform
id: setup-terraform
uses: hashicorp/setup-terraform@v3
with:
terraform_version: ${{ inputs.terraform-version }}

- name: Get Version
id: version-terraform
run: printf 'terraform-version=%s\n' "$(terraform version -json | jq -r '.terraform_version')" >> $GITHUB_OUTPUT
shell: bash

- run: printf 'date=%s\n' "$(date -I)" >> $GITHUB_OUTPUT
id: get-date
if: inputs.cache == 'true'
shell: bash

- name: Configure Plugin Cache Directory
id: cache-config
if: inputs.cache == 'true'
run: |
echo 'plugin_cache_dir="~/.terraform.d/plugin-cache"' > ~/.terraformrc
mkdir -p ~/.terraform.d/plugin-cache
shell: bash

- uses: actions/cache@v4
name: Cache Terraform Plugins
id: cache-terraform
if: inputs.cache == 'true'
with:
path: |
~/.terraform.d/plugin-cache
key: terraform-${{ steps.get-date.outputs.date }}-${{ runner.os }}-${{ hashFiles('.terraform.lock.hcl') }}
restore-keys: |
terraform-${{ steps.get-date.outputs.date }}-${{ runner.os }}-
terraform-${{ steps.get-date.outputs.date }}-
- name: Init Terraform
id: init-terraform
run: terraform init ${{ inputs.args }}
shell: bash
63 changes: 63 additions & 0 deletions .github/workflows/.tests-matrix.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
on:
workflow_call:
inputs:
runner:
required: true
type: string
terraform-version:
required: true
type: string
tflint-version:
required: true
type: string
run-tflint:
required: true
type: boolean
run-tftest:
required: true
type: boolean

defaults:
run:
shell: bash

jobs:

tflint:
name: Lint Terraform
runs-on: ${{ inputs.runner }}
if: inputs.run-tflint
steps:
- uses: actions/cache@v4
name: Cache tflint plugins
with:
path: ~/.tflint.d/plugins
key: tflint-${{ inputs.runner }}-${{ hashFiles('.tflint.hcl') }}
restore-keys: |
tflint-${{ inputs.runner }}-
- uses: terraform-linters/setup-tflint@v4
name: Setup TFLint
with:
tflint_version: ${{ inputs.tflint-version }}

- name: Init TFLint
run: tflint --init
env:
GITHUB_TOKEN: ${{ github.token }}

- name: Run TFLint
run: tflint -f compact

tftest:
name: Test Terraform
runs-on: ${{ inputs.runner }}
if: inputs.run-tftest
steps:
- uses: actions/checkout@v4

- uses: ./.github/actions/terraform-init
with:
terraform-version: ${{ inputs.terraform-version }}

- run: terraform test
Loading

0 comments on commit 5f2a81e

Please sign in to comment.