mirror of
https://github.com/ysoftdevs/terraform-aws-eks.git
synced 2026-01-18 01:27:55 +01:00
fix: update CI/CD process to enable auto-release workflow (#1698)
This commit is contained in:
36
.github/workflows/changelog-check.yaml
vendored
36
.github/workflows/changelog-check.yaml
vendored
@@ -1,36 +0,0 @@
|
||||
name: CHANGELOG Checks
|
||||
on:
|
||||
pull_request_target:
|
||||
paths:
|
||||
- CHANGELOG.md
|
||||
branches-ignore:
|
||||
- releases/**
|
||||
|
||||
jobs:
|
||||
comment:
|
||||
name: Comment
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Find Existing PR Comment
|
||||
id: prc
|
||||
uses: peter-evans/find-comment@v1
|
||||
with:
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
comment-author: "github-actions[bot]"
|
||||
body-includes: "The `CHANGELOG.md` file contents are handled by the maintainers during merge."
|
||||
- name: PR Comment
|
||||
if: ${{ steps.prc.outputs.comment-id == '' }}
|
||||
uses: peter-evans/create-or-update-comment@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
body: |
|
||||
Thank you for your contribution!
|
||||
|
||||
The `CHANGELOG.md` file contents are handled by the maintainers during merge. This is to prevent pull request merge conflicts.
|
||||
Please see the Contributing Guide for additional pull request review items.
|
||||
|
||||
Remove any changes to the `CHANGELOG.md` file and commit them in this pull request.
|
||||
- name: Fail the check if changelog change
|
||||
run: exit 1
|
||||
105
.github/workflows/pre-commit.yml
vendored
105
.github/workflows/pre-commit.yml
vendored
@@ -2,98 +2,77 @@ name: Pre-Commit
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
|
||||
env:
|
||||
TERRAFORM_DOCS_VERSION: v0.16.0
|
||||
|
||||
jobs:
|
||||
# Min Terraform version(s)
|
||||
getDirectories:
|
||||
name: Get root directories
|
||||
collectInputs:
|
||||
name: Collect workflow inputs
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
directories: ${{ steps.dirs.outputs.directories }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Python
|
||||
uses: actions/setup-python@v2
|
||||
- name: Build matrix
|
||||
id: matrix
|
||||
run: |
|
||||
DIRS=$(python -c "import json; import glob; print(json.dumps([x.replace('/versions.tf', '') for x in glob.glob('./**/versions.tf', recursive=True)]))")
|
||||
echo "::set-output name=directories::$DIRS"
|
||||
outputs:
|
||||
directories: ${{ steps.matrix.outputs.directories }}
|
||||
|
||||
- name: Get root directories
|
||||
id: dirs
|
||||
uses: clowdhaus/terraform-composite-actions/directories@v1.3.0
|
||||
|
||||
preCommitMinVersions:
|
||||
name: Min TF validate
|
||||
needs: getDirectories
|
||||
name: Min TF pre-commit
|
||||
needs: collectInputs
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
directory: ${{ fromJson(needs.getDirectories.outputs.directories) }}
|
||||
directory: ${{ fromJson(needs.collectInputs.outputs.directories) }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Python
|
||||
uses: actions/setup-python@v2
|
||||
|
||||
- name: Terraform min/max versions
|
||||
id: minMax
|
||||
uses: clowdhaus/terraform-min-max@v1.0.2
|
||||
uses: clowdhaus/terraform-min-max@v1.0.3
|
||||
with:
|
||||
directory: ${{ matrix.directory }}
|
||||
- name: Install Terraform v${{ steps.minMax.outputs.minVersion }}
|
||||
uses: hashicorp/setup-terraform@v1
|
||||
with:
|
||||
terraform_version: ${{ steps.minMax.outputs.minVersion }}
|
||||
- name: Install pre-commit dependencies
|
||||
run: pip install pre-commit
|
||||
- name: Execute pre-commit
|
||||
|
||||
- name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
|
||||
# Run only validate pre-commit check on min version supported
|
||||
if: ${{ matrix.directory != '.' }}
|
||||
run: pre-commit run terraform_validate --color=always --show-diff-on-failure --files ${{ matrix.directory }}/*
|
||||
- name: Execute pre-commit
|
||||
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.3.0
|
||||
with:
|
||||
terraform-version: ${{ steps.minMax.outputs.minVersion }}
|
||||
args: 'terraform_validate --color=always --show-diff-on-failure --files ${{ matrix.directory }}/*'
|
||||
|
||||
- name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
|
||||
# Run only validate pre-commit check on min version supported
|
||||
if: ${{ matrix.directory == '.' }}
|
||||
run: pre-commit run terraform_validate --color=always --show-diff-on-failure --files $(ls *.tf)
|
||||
|
||||
# Max Terraform version
|
||||
getBaseVersion:
|
||||
name: Module max TF version
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Terraform min/max versions
|
||||
id: minMax
|
||||
uses: clowdhaus/terraform-min-max@v1.0.2
|
||||
outputs:
|
||||
minVersion: ${{ steps.minMax.outputs.minVersion }}
|
||||
maxVersion: ${{ steps.minMax.outputs.maxVersion }}
|
||||
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.3.0
|
||||
with:
|
||||
terraform-version: ${{ steps.minMax.outputs.minVersion }}
|
||||
args: 'terraform_validate --color=always --show-diff-on-failure --files $(ls *.tf)'
|
||||
|
||||
preCommitMaxVersion:
|
||||
name: Max TF pre-commit
|
||||
runs-on: ubuntu-latest
|
||||
needs: getBaseVersion
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
version:
|
||||
- ${{ needs.getBaseVersion.outputs.maxVersion }}
|
||||
needs: collectInputs
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Python
|
||||
uses: actions/setup-python@v2
|
||||
- name: Install Terraform v${{ matrix.version }}
|
||||
uses: hashicorp/setup-terraform@v1
|
||||
with:
|
||||
terraform_version: ${{ matrix.version }}
|
||||
- name: Install pre-commit dependencies
|
||||
run: |
|
||||
pip install pre-commit
|
||||
curl -Lo ./terraform-docs.tar.gz https://github.com/terraform-docs/terraform-docs/releases/download/v0.13.0/terraform-docs-v0.13.0-$(uname)-amd64.tar.gz && tar -xzf terraform-docs.tar.gz terraform-docs && chmod +x terraform-docs && sudo mv terraform-docs /usr/bin/
|
||||
curl -L "$(curl -s https://api.github.com/repos/terraform-linters/tflint/releases/latest | grep -o -E "https://.+?_linux_amd64.zip")" > tflint.zip && unzip tflint.zip tflint && rm tflint.zip && sudo mv tflint /usr/bin/
|
||||
- name: Execute pre-commit
|
||||
# Run all pre-commit checks on max version supported
|
||||
if: ${{ matrix.version == needs.getBaseVersion.outputs.maxVersion }}
|
||||
run: pre-commit run --color=always --show-diff-on-failure --all-files
|
||||
ref: ${{ github.event.pull_request.head.ref }}
|
||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||
|
||||
- name: Terraform min/max versions
|
||||
id: minMax
|
||||
uses: clowdhaus/terraform-min-max@v1.0.3
|
||||
|
||||
- name: Pre-commit Terraform ${{ steps.minMax.outputs.maxVersion }}
|
||||
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.3.0
|
||||
with:
|
||||
terraform-version: ${{ steps.minMax.outputs.maxVersion }}
|
||||
terraform-docs-version: ${{ env.TERRAFORM_DOCS_VERSION }}
|
||||
|
||||
32
.github/workflows/release.yml
vendored
Normal file
32
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
paths:
|
||||
- '**/*.py'
|
||||
- '**/*.tf'
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Release
|
||||
uses: cycjimmy/semantic-release-action@v2
|
||||
with:
|
||||
semantic_version: 18.0.0
|
||||
extra_plugins: |
|
||||
@semantic-release/changelog@6.0.0
|
||||
@semantic-release/git@10.0.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_TOKEN }}
|
||||
Reference in New Issue
Block a user