All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Released: 2021.11.04
Commit Delta: Change from 0.19.2 release
Summary:
- If ONLY_MOTO is set to true in a Makefile and a integration test is run against AWS itself (versus a mock AWS), instead of failing due to the conflicting command line options, a warning will be printed.
Released: 2021.11.03
Commit Delta: Change from 0.19.1 release
Summary:
-
Adds new Makefile targets for the purpose of installing packer and rclone
-
Adds install targets for the tools:
- packer 1.7.8
- rclone 1.57.0
Released: 2021.11.01
Commit Delta: Change from 0.19.0 release
Summary:
-
Added moto-only services to mockstack.tf: Cloudtrail, Directory Service, Route53 and Route53 Resolver.
-
Updates tool versions:
- black 21.10b0
- cfn-lint 0.54.4
- terraform 1.0.10
- yq 4.14.1
- terragrunt 0.35.5
Released: 2021.10.25
Commit Delta: Change from 0.18.0 release
Summary:
-
The new environment variable "ONLY_MOTO" can be used to specify that moto should be used for mock AWS services, and not LocalStack or some combination of moto and LocalStack.
-
Updates tool versions:
- bats 1.50
- cfn-lint 0.54.3
- terraform 1.0.9
- terraform-docs 1.16.0
- terragrunt 0.35.4
- terratest 0.38.2
- yq 4.13.5
- Docker now using golang:1.17.2-buster
- Docker now using python:3.10.0-buster
Released: 2021.09.13
Commit Delta: Change from 0.17.1 release
Summary:
-
The new environment variable "PROVIDER_ALIAS" can be used to specify the name of a Terraform provider alias. Used as a value for the new "--alias" command line option, it instructs the automated integration test tool to create the aliased provider information in preparation for a test run.
-
When running Terraform tests, the Firehose service will now be provided by moto and not LocalStack.
-
Updates tool versions:
- black 21.9b0
- cfn-lint 0.54.1
- pylint 2.11.1
- pytest 6.2.5
- terraform 1.0.7
- terraform-docs 1.15.0
- terragrunt 0.31.10
- terratest 0.37.8
- yamllint 1.26.3
- yq 4.13.2
- Docker now using golang:1.17.1-buster
- Docker now using python:3.9.7-buster
Released: 2021.07.30
Commit Delta: Change from 0.17.0 release
Summary:
- Uses fixuid in entrypoint to fix permissions issues with bindmounts. The user that builds the tardigrade-ci container and the user that runs the tardigrade-ci container (or containers built from it) must have the same UID, or permissions issues will occur. Fixuid checks the user running the container and chowns any file or directory owned by a specified user/group in its configuration. This ensures the user has permissions to those files and directories.
Released: 2021.07.29
Commit Delta: Change from 0.16.1 release
Summary:
- Creates a non-root user in docker image and passes user context when building the image. This ensures that files created in volumes mounted to the docker container are owned by the user running the container.
- Mounts the
.aws
directory as read-only in the docker container.
Released: 2021.07.22
Commit Delta: Change from 0.16.0 release
Summary:
-
Modifies Travis workflow to run lint generically, not just ec and a shell check.
-
Corrects various lint errors.
-
No changes to tool versions.
Released: 2021.07.22
Commit Delta: Change from 0.15.0 release
Summary:
-
Adds the target "pytest/%" for Python unit testing.
-
Replaces the environment variable TERRAFORM_PYTEST_ARGS with PYTEST_ARGS.
-
Corrects an error with the integration test utility that occurs when Terraform fails during the apply.
-
No changes to tool versions.
Released: 2021.07.15
Commit Delta: Change from 0.14.1 release
Summary:
-
Adds new Makefile targets for the purpose of testing Terraform modules using Terraform and the mock AWS stacks LocalStack and/or moto. The new readme file
INTEGRATION_TESTING.md
describes the expected testing environment and the associated Makefile targets. -
Updates tool versions:
- docker-compose 1.29.2
-
Adds install targets for the tools:
- pytest-compose 6.2.4
- tftest 1.6.0
Released: 2021.07.9
Commit Delta: Change from 0.14.0 release
Summary:
- Updates language versions:
- python 3.9.6
- Updates tool versions:
- black 21.6b0
- cfn-lint 0.52.0
- pylint 2.9.3
- terraform 1.0.2
- terraform-docs 0.14.1
- terragrunt 0.31.0
- terratest 0.36.5
- yq 4.9.8
Released: 2021.05.28
Commit Delta: Change from 0.13.1 release
Summary:
- Modifies "install" targets to install the version pinned in a file managed
by Dependabot. Depending on the tool and how it is packaged/hosted, the version
may be pinned in
Dockerfile.tools
,requirements.txt
, or.github/workflows/dependabot_hack.yml
. - Uses "install" targets in Dockerfile, to ensure the targets are all tested when building the image in Ci.
Released: 2021.05.07
Commit Delta: Change from 0.13.0 release
Summary:
- Provides a target for installing terragrunt,
terragrunt/install
, and adds terragrunt to the docker container.
Released: 2021.05.06
Commit Delta: Change from 0.12.4 release
Summary:
- Update terraform-docs version to v0.13.0
Released: 2021.05.05
Commit Delta: Change from 0.12.3 release
Summary:
- Uses
pip
pyenv shim when available - Adds
PYTHONUSERBASE
bin directory to PATH
Released: 2021.05.04
Commit Delta: Change from 0.12.2 release
Summary:
- Updates version of black. Modifies pydocstyle unit test to accommodate change for the new version of black.
Released: 2021.05.03
Commit Delta: Change from 0.12.1 release
Summary:
- Provides a macro "stream_github_release" that supports piping a GitHub Release
artifact to another tool (like
tar
). The target "stream/gh-release/%" is deprecated in favor of this macro, to avoid an unnecessary recursive$(MAKE)
. - Updates the
terraform-docs/install
target to extract the binary from the tar.gz archive hosted by GitHub Releases, as the binary is no longer available as a separate artifact.
Released: 2021.05.3
Commit Delta: Change from 0.12.0 release
Summary:
- Remove the "--user" option from the "python -m pip install" commands.
Released: 2021.04.23
Commit Delta: Change from 0.11.0 release
Summary:
- Pins terraform-docs version using multi-stage docker build
- Pins terraform version using multi-stage docker build
- Pins shellcheck version using multi-stage docker build
- Pins bats version using multi-stage docker build
- Pins editorconfig-checker (ec) version using multi-stage docker build
- Pins yq version using multi-stage docker build
- Pins black version using requirements.txt and multi-stage docker build
- Pins pylint version using requirements.txt and multi-stage docker build
- Pins pylint-pytest version using requirements.txt and multi-stage docker build
- Pins pydocstyle version using requirements.txt and multi-stage docker build
- Pins yamllint version using requirements.txt and multi-stage docker build
- Pins cfn-lint version using requirements.txt and multi-stage docker build
- Pins bumpversion version using requirements.txt and multi-stage docker build
Released: 2021.03.19
Commit Delta: Change from 0.10.0 release
Summary:
- Adds env TARDIGRADE_CI_AUTO_INIT that controls whether auto-init is enabled (defaults to true).
- Suppresses the duplicative output from the auto-init logic in recursive calls to $(MAKE).
Released: 2021.03.18
Commit Delta: Change from 0.9.2 release
Summary:
- No longer requires a docker file with the fixed name of
Dockerfile
. The environment variableTARDIGRADE_CI_DOCKERFILE
can be used to specify an alternative docker filename for thedocker/build
target or for the file used for the bootstrap. - Corrects misspelling of the module name for terratest golang test.
Released: 2021.02.19
Commit Delta: Change from 0.9.1 release
Summary:
- Restores terraform-docs version to latest (currently v0.11.1), suppressing
the
modules
andresources
sections. Also, the newline behavior ofdocs/generate
is managed explicitly so it is no longer subject to future changes in the terminating newline behavior ofterraform-docs
. See PR #143
Released: 2021.02.18
Commit Delta: Change from 0.9.0 release
Summary:
- Skips setting AWS_PROFILE when the env is not available
Released: 2021.02.18
Commit Delta: Change from 0.8.1 release
Summary:
- PYLINT_RCFILE defines location of the .pylintrc used by pylint
- Loadable-plugin added to .pylintrc file to support pytest linting
Released: 2021.01.13
Commit Delta: Change from 0.8.0 release
Summary:
- Runs auto-init in non-
tardigrade-ci
containers, so the make targets are available - Ensures
$PWD
is always set, including when invoking the container directly withdocker run
Released: 2021.01.12
Commit Delta: Change from 0.7.0 release
Summary:
- Provides auto-init functionality that removes requirement to run
make init
before calling othermake
targets - Documents the operational differences between user mode and developer mode
- Documents software tools and versions required to use the Makefile operational modes
- Improves safeties around
make clean
by restricting its operation to the tardigrade-ci subdirectory (relevant to user mode) - Removes
{project}/.tardigrade-ci
when callingmake clean
- Recommends the calling project
include
test for the.tardigrade-ci
file to avoid unnecessary network I/O - Updates docker image to place the tardigrade-ci contents at
/tardigrade-ci
- Sets
docker/run
WORKDIR to/workdir
and mounts calling project to/workdir
- Exposes the env
entrypoint
to thedocker/run
target, keeping backwards compatibility by setting the default tomake
- Authenticates to GitHub API with GITHUB_ACCESS_TOKEN only if present
Released: 2021.01.06
Commit Delta: Change from 0.6.2 release
Summary:
- Provides
bumpversion
utility and targets to manage version update workflows - Exposes env
PKG_VERSION_CMD
so the targetinstall/pip/%
can tailor the version check per utility
Released: 2021.01.04
Commit Delta: Change from 0.6.1 release
Summary:
- Updates
docker/run
to grant the container access to the tardigrade-ci repo when the repo is outside the project directory
Released: 2020.12.29
Commit Delta: Change from 0.6.0 release
Summary:
- Disables the
detachedHead
warning when bootstrapping tardigrade-ci repo - Retrieves version from Dockerfile when bootstrapping the tardigrade-ci repo With the change to how the container is mounted in v0.6.0, projects would always retrieve the latest Makefile even when pinning an earlier version of the docker container. This could cause unexpected CI failures in work unrelated to an update of the container
Released: 2020.12.23
Commit Delta: Change from 0.5.0 release
Summary:
- Uses the calling project's directory as the docker WORKDIR (
/ci-harness
) for thedocker/run
target. This removes a layer of abstraction, where before the tardigrade-ci directory was the/ci-harness
WORKDIR, and the project's directory was mounted at/ci-harness/{project}
. The prior approach meant all commands needed to change to the{project}
directory to function properly. Now, commands operate the same as if they were being run outside the docker container
Released: 2020.12.18
Commit Delta: Change from 0.4.0 release
Summary:
- Uses
pydocstyle
to lint python docstrings inpython/lint
target
Released: 2020.12.17
Commit Delta: Change from 0.3.1 release
Summary:
- Replaces
eclint
witheditorconfig-checker
- Improves friendliness of
ec/lint
tests by avoiding changes to the git working area
Released: 2020.12.11
Commit Delta: Change from 0.3.0 release
Summary:
- Corrects
ec/lint
behavior when there are no matching files
Released: 2020.12.10
Commit Delta: Change from 0.2.0 release
Summary:
- Modifies the envs
ECLINT_FILES
andPYTHON_FILES
to be lists of files, instead of commands that return the files - Passes the
PROJECT_ROOT
env togit ls-files
soECLINT_FILES
andPYTHON_FILES
return the correct set of files
Released: 2020.12.03
Commit Delta: Change from 0.1.0 release
Summary:
- Updates
python/lint
to lint python files withpylint
Released: 2020.08.20
Commit Delta: Change from 0.0.18 release
Summary:
- Adds support for terraform 0.13
- Updates
docker/%
target to support building docker image locally on Ubuntu
Released: 2020.06.10
Commit Delta: Change from 0.0.17 release
Summary:
- Excludes cache directories from
make docs/%
targets
Released: 2020.04.08
Commit Delta: Change from 0.0.16 release
Summary:
- Exposes
TIMEOUT
env to customize the terratest timeout in themake test
target
Released: 2020.04.08
Commit Delta: Change from 0.0.15 release
Summary:
- Updates hcl/format and hcl/lint targets
Released: 2020.1.28
Commit Delta: Change from 0.0.0 release
Summary:
- Adds black and eclint make targets
Released: 2020.1.27
Commit Delta: Change from 0.0.0 release
Summary:
- Adds remote Makefile functionality
Released: 2020.1.23
Commit Delta: Change from 0.0.0 release
Summary:
- Updates terraform-docs make targets and associated tests
Commit Delta: N/A
Released: 2020.01.16
Summary:
- Initial release!