-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #8 from cisagov/skeletonize
Pull in upstream updates
- Loading branch information
Showing
32 changed files
with
1,162 additions
and
123 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
# See https://ansible-lint.readthedocs.io/en/latest/configuring.html | ||
# for a list of the configuration elements that can exist in this | ||
# file. | ||
enable_list: | ||
# Useful checks that one must opt-into. See here for more details: | ||
# https://ansible-lint.readthedocs.io/en/latest/rules.html | ||
- fcqn-builtins | ||
- no-log-password | ||
- no-same-owner | ||
exclude_paths: | ||
# This exclusion is implicit, unless exclude_paths is defined | ||
- .cache | ||
# Seems wise to ignore this too | ||
- .github | ||
kinds: | ||
# This will force our systemd specific molecule configurations to be treated | ||
# as plain yaml files by ansible-lint. This mirrors the default kind | ||
# configuration in ansible-lint for molecule configurations: | ||
# yaml: "**/molecule/*/{base,molecule}.{yaml,yml}" | ||
- yaml: "**/molecule/*/molecule-{no,with}-systemd.yml" | ||
use_default_rules: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
--- | ||
# Configuration file for the Bandit python security scanner | ||
# https://bandit.readthedocs.io/en/latest/config.html | ||
# This config is applied to bandit when scanning the "tests" tree | ||
|
||
# Tests are first included by `tests`, and then excluded by `skips`. | ||
# If `tests` is empty, all tests are are considered included. | ||
|
||
tests: | ||
# - B101 | ||
# - B102 | ||
|
||
skips: | ||
- B101 # skip "assert used" check since assertions are required in pytests |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# This is the configuration for code coverage checks | ||
# https://coverage.readthedocs.io/en/latest/config.html | ||
|
||
[run] | ||
source = src/mongo_db_from_config | ||
omit = | ||
branch = true | ||
|
||
[report] | ||
exclude_lines = | ||
if __name__ == "__main__": | ||
show_missing = true |
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# Each line is a file pattern followed by one or more owners. | ||
|
||
# These owners will be the default owners for everything in the | ||
# repo. Unless a later match takes precedence, these owners will be | ||
# requested for review when someone opens a pull request. | ||
* @dav3r @felddy @jsf9k @mcdonnnj | ||
|
||
# These folks own any files in the .github directory at the root of | ||
# the repository and any of its subdirectories. | ||
/.github/ @dav3r @felddy @jsf9k @mcdonnnj |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
|
||
# Any ignore directives should be uncommented in downstream projects to disable | ||
# Dependabot updates for the given dependency. Downstream projects will get | ||
# these updates when the pull request(s) in the appropriate skeleton are merged | ||
# and Lineage processes these changes. | ||
|
||
version: 2 | ||
updates: | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: "weekly" | ||
ignore: | ||
- dependency-name: actions/cache | ||
- dependency-name: actions/checkout | ||
- dependency-name: actions/setup-python | ||
|
||
- package-ecosystem: "pip" | ||
directory: "/" | ||
schedule: | ||
interval: "weekly" | ||
|
||
- package-ecosystem: "terraform" | ||
directory: "/" | ||
schedule: | ||
interval: "weekly" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
lineage: | ||
skeleton: | ||
remote-url: https://github.com/cisagov/skeleton-python-library.git | ||
version: '1' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,240 @@ | ||
--- | ||
name: build | ||
|
||
on: | ||
push: | ||
pull_request: | ||
repository_dispatch: | ||
types: [apb] | ||
|
||
env: | ||
CURL_CACHE_DIR: ~/.cache/curl | ||
PIP_CACHE_DIR: ~/.cache/pip | ||
PRE_COMMIT_CACHE_DIR: ~/.cache/pre-commit | ||
RUN_TMATE: ${{ secrets.RUN_TMATE }} | ||
|
||
jobs: | ||
lint: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- id: setup-env | ||
uses: cisagov/setup-env-github-action@develop | ||
- uses: actions/checkout@v3 | ||
- id: setup-python | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: "3.10" | ||
# We need the Go version and Go cache location for the actions/cache step, | ||
# so the Go installation must happen before that. | ||
- uses: actions/setup-go@v2 | ||
with: | ||
go-version: "1.16" | ||
- name: Store installed Go version | ||
id: go-version | ||
run: | | ||
echo "::set-output name=version::"\ | ||
"$(go version | sed 's/^go version go\([0-9.]\+\) .*/\1/')" | ||
- name: Lookup Go cache directory | ||
id: go-cache | ||
run: | | ||
echo "::set-output name=dir::$(go env GOCACHE)" | ||
- uses: actions/cache@v3 | ||
env: | ||
BASE_CACHE_KEY: "${{ github.job }}-${{ runner.os }}-\ | ||
py${{ steps.setup-python.outputs.python-version }}-\ | ||
go${{ steps.go-version.outputs.version }}-\ | ||
packer${{ steps.setup-env.outputs.packer-version }}-\ | ||
tf${{ steps.setup-env.outputs.terraform-version }}-" | ||
with: | ||
# Note that the .terraform directory IS NOT included in the | ||
# cache because if we were caching, then we would need to use | ||
# the `-upgrade=true` option. This option blindly pulls down the | ||
# latest modules and providers instead of checking to see if an | ||
# update is required. That behavior defeats the benefits of caching. | ||
# so there is no point in doing it for the .terraform directory. | ||
path: | | ||
${{ env.PIP_CACHE_DIR }} | ||
${{ env.PRE_COMMIT_CACHE_DIR }} | ||
${{ env.CURL_CACHE_DIR }} | ||
${{ steps.go-cache.outputs.dir }} | ||
# We do not use '**/setup.py' in the cache key so only the 'setup.py' | ||
# file in the root of the repository is used. This is in case a Python | ||
# package were to have a 'setup.py' as part of its internal codebase. | ||
key: "${{ env.BASE_CACHE_KEY }}\ | ||
${{ hashFiles('**/requirements-test.txt') }}-\ | ||
${{ hashFiles('**/requirements.txt') }}-\ | ||
${{ hashFiles('**/.pre-commit-config.yaml') }}-\ | ||
${{ hashFiles('setup.py') }}" | ||
restore-keys: | | ||
${{ env.BASE_CACHE_KEY }} | ||
- name: Setup curl cache | ||
run: mkdir -p ${{ env.CURL_CACHE_DIR }} | ||
- name: Install Packer | ||
env: | ||
PACKER_VERSION: ${{ steps.setup-env.outputs.packer-version }} | ||
run: | | ||
PACKER_ZIP="packer_${PACKER_VERSION}_linux_amd64.zip" | ||
curl --output ${{ env.CURL_CACHE_DIR }}/"${PACKER_ZIP}" \ | ||
--time-cond ${{ env.CURL_CACHE_DIR }}/"${PACKER_ZIP}" \ | ||
--location \ | ||
"https://releases.hashicorp.com/packer/${PACKER_VERSION}/${PACKER_ZIP}" | ||
sudo unzip -d /opt/packer \ | ||
${{ env.CURL_CACHE_DIR }}/"${PACKER_ZIP}" | ||
sudo mv /usr/local/bin/packer /usr/local/bin/packer-default | ||
sudo ln -s /opt/packer/packer /usr/local/bin/packer | ||
- uses: hashicorp/setup-terraform@v1 | ||
with: | ||
terraform_version: ${{ steps.setup-env.outputs.terraform-version }} | ||
- name: Install shfmt | ||
env: | ||
PACKAGE_URL: mvdan.cc/sh/v3/cmd/shfmt | ||
PACKAGE_VERSION: ${{ steps.setup-env.outputs.shfmt-version }} | ||
run: go install ${PACKAGE_URL}@${PACKAGE_VERSION} | ||
- name: Install Terraform-docs | ||
env: | ||
PACKAGE_URL: github.com/terraform-docs/terraform-docs | ||
PACKAGE_VERSION: ${{ steps.setup-env.outputs.terraform-docs-version }} | ||
run: go install ${PACKAGE_URL}@${PACKAGE_VERSION} | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install --upgrade --requirement requirements-test.txt | ||
- name: Set up pre-commit hook environments | ||
run: pre-commit install-hooks | ||
- name: Run pre-commit on all files | ||
run: pre-commit run --all-files | ||
- name: Setup tmate debug session | ||
uses: mxschmitt/action-tmate@v3 | ||
if: env.RUN_TMATE | ||
test: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: | ||
- "3.6" | ||
- "3.7" | ||
- "3.8" | ||
- "3.9" | ||
- "3.10" | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- id: setup-python | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- uses: actions/cache@v3 | ||
env: | ||
BASE_CACHE_KEY: "${{ github.job }}-${{ runner.os }}-\ | ||
py${{ steps.setup-python.outputs.python-version }}-" | ||
with: | ||
path: ${{ env.PIP_CACHE_DIR }} | ||
# We do not use '**/setup.py' in the cache key so only the 'setup.py' | ||
# file in the root of the repository is used. This is in case a Python | ||
# package were to have a 'setup.py' as part of its internal codebase. | ||
key: "${{ env.BASE_CACHE_KEY }}\ | ||
${{ hashFiles('**/requirements-test.txt') }}-\ | ||
${{ hashFiles('**/requirements.txt') }}-\ | ||
${{ hashFiles('setup.py') }}" | ||
restore-keys: | | ||
${{ env.BASE_CACHE_KEY }} | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install --upgrade --requirement requirements-test.txt | ||
- name: Run tests | ||
env: | ||
RELEASE_TAG: ${{ github.event.release.tag_name }} | ||
run: pytest | ||
- name: Upload coverage report | ||
run: coveralls | ||
env: | ||
COVERALLS_FLAG_NAME: "py${{ matrix.python-version }}" | ||
COVERALLS_PARALLEL: true | ||
COVERALLS_SERVICE_NAME: github | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
if: success() | ||
- name: Setup tmate debug session | ||
uses: mxschmitt/action-tmate@v3 | ||
if: env.RUN_TMATE | ||
coveralls-finish: | ||
runs-on: ubuntu-latest | ||
needs: test | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- id: setup-python | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: "3.10" | ||
- uses: actions/cache@v3 | ||
env: | ||
BASE_CACHE_KEY: "${{ github.job }}-${{ runner.os }}-\ | ||
py${{ steps.setup-python.outputs.python-version }}-" | ||
with: | ||
path: ${{ env.PIP_CACHE_DIR }} | ||
# We do not use '**/setup.py' in the cache key so only the 'setup.py' | ||
# file in the root of the repository is used. This is in case a Python | ||
# package were to have a 'setup.py' as part of its internal codebase. | ||
key: "${{ env.BASE_CACHE_KEY }}\ | ||
${{ hashFiles('**/requirements-test.txt') }}-\ | ||
${{ hashFiles('**/requirements.txt') }}-\ | ||
${{ hashFiles('setup.py') }}" | ||
restore-keys: | | ||
${{ env.BASE_CACHE_KEY }} | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install --upgrade --requirement requirements-test.txt | ||
- name: Finished coveralls reports | ||
run: coveralls --finish | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Setup tmate debug session | ||
uses: mxschmitt/action-tmate@v3 | ||
if: env.RUN_TMATE | ||
build: | ||
runs-on: ubuntu-latest | ||
needs: [lint, test] | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: | ||
- "3.6" | ||
- "3.7" | ||
- "3.8" | ||
- "3.9" | ||
- "3.10" | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- id: setup-python | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- uses: actions/cache@v3 | ||
env: | ||
BASE_CACHE_KEY: "${{ github.job }}-${{ runner.os }}-\ | ||
py${{ steps.setup-python.outputs.python-version }}-" | ||
with: | ||
path: ${{ env.PIP_CACHE_DIR }} | ||
# We do not use '**/setup.py' in the cache key so only the 'setup.py' | ||
# file in the root of the repository is used. This is in case a Python | ||
# package were to have a 'setup.py' as part of its internal codebase. | ||
key: "${{ env.BASE_CACHE_KEY }}\ | ||
${{ hashFiles('**/requirements.txt') }}-\ | ||
${{ hashFiles('setup.py') }}" | ||
restore-keys: | | ||
${{ env.BASE_CACHE_KEY }} | ||
- name: Install build dependencies | ||
run: | | ||
python -m pip install --upgrade pip setuptools wheel | ||
python -m pip install --upgrade build | ||
- name: Build artifacts | ||
run: python -m build | ||
- name: Upload artifacts | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: dist-${{ matrix.python-version }} | ||
path: dist | ||
- name: Setup tmate debug session | ||
uses: mxschmitt/action-tmate@v3 | ||
if: env.RUN_TMATE |
Oops, something went wrong.