Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

⚠️ CONFLICT! Lineage pull request for: skeleton #25

Merged
merged 109 commits into from
Aug 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
8e92286
Enable container publication to GitHub Container Registry.
felddy Mar 25, 2021
27c0451
Update .github/workflows/build.yml
felddy Mar 26, 2021
6427dfa
Add better build instructions to the README.
felddy Apr 6, 2021
cd0d272
Skip CodeQL workflow for Dependabot branches on push events
mcdonnnj Apr 7, 2021
d354a54
Update README.md
felddy Apr 8, 2021
267e56b
Update README.md
felddy Apr 8, 2021
d0d474c
Update README.md
felddy Apr 8, 2021
d58e50c
Update README.md
felddy Apr 8, 2021
c8ea902
Update README.md
felddy Apr 8, 2021
f014b4c
Update README.md
felddy Apr 8, 2021
4df9da2
Update README.md
felddy Apr 8, 2021
2c06a69
Update README.md
felddy Apr 8, 2021
6a11d94
Update README.md
felddy Apr 8, 2021
ba49077
Improve gitignore file comments and organization.
felddy Apr 12, 2021
2c4d7a2
Remove user from CODEOWNERS
mcdonnnj Apr 15, 2021
5fb5dbc
Add semver package to development requirements
mcdonnnj Apr 25, 2021
9938f67
Unquote port integers as this is now a parse error in Docker.
felddy Apr 26, 2021
67f3a0c
Change compose specification version to match pyenv testing composition.
felddy Apr 26, 2021
0d69636
Add context around command-line instructions for non-technical folks.
felddy Apr 26, 2021
3b62397
Update README.md
felddy Apr 26, 2021
bc46deb
Add the tag.sh script to this repository
mcdonnnj May 10, 2021
d405a76
Update README.md
felddy May 25, 2021
0349499
Update pre-commit hooks
mcdonnnj Apr 15, 2021
23b324b
Update configuration instructions for pyenv
mcdonnnj Jun 1, 2021
bd12db1
Merge pull request #71 from cisagov/maintenance/update_pre-commit_hooks
mcdonnnj Jun 2, 2021
39a67fc
Merge branch 'develop' into maintenance/remove_user_from_codeowners
mcdonnnj Jun 2, 2021
01b06c4
Merge pull request #72 from cisagov/maintenance/remove_user_from_code…
mcdonnnj Jun 2, 2021
b486037
Merge branch 'develop' into documentation/update_pyenv_instructions
mcdonnnj Jun 2, 2021
02aefa1
Merge pull request #75 from cisagov/documentation/update_pyenv_instru…
mcdonnnj Jun 2, 2021
e140c33
Merge branch 'develop' into improvement/gitignore_me
mcdonnnj Jun 2, 2021
b0e7f01
Merge pull request #70 from cisagov/improvement/gitignore_me
mcdonnnj Jun 2, 2021
f250f01
Merge github.com:cisagov/skeleton-generic into lineage/skeleton
mcdonnnj Jun 2, 2021
8c51707
Add Docker section to the gitignore file
mcdonnnj Jun 2, 2021
ed8cff9
Merge pull request #59 from cisagov/lineage/skeleton
mcdonnnj Jun 3, 2021
1e5bc0b
Merge branch 'develop' into improvement/skip_codeql_on_push_for_depen…
mcdonnnj Jun 3, 2021
2bad364
Merge pull request #53 from cisagov/improvement/skip_codeql_on_push_f…
mcdonnnj Jun 3, 2021
bc417c8
Merge branch 'develop' into bug/add_semver_to_requirements
mcdonnnj Jun 3, 2021
d580ccb
Merge pull request #55 from cisagov/bug/add_semver_to_requirements
mcdonnnj Jun 3, 2021
a42f980
Merge branch 'develop' into improvement/add_tag_script
mcdonnnj Jun 3, 2021
a42ebe6
Merge pull request #57 from cisagov/improvement/add_tag_script
mcdonnnj Jun 3, 2021
3bce972
Merge branch 'develop' into improvement/gh_registry
mcdonnnj Jun 3, 2021
1c8c7d0
Merge pull request #49 from cisagov/improvement/gh_registry
mcdonnnj Jun 3, 2021
688f98b
Merge branch 'develop' into improvement/readme_build_instructions
mcdonnnj Jun 3, 2021
b1949f9
Merge pull request #51 from cisagov/improvement/readme_build_instruct…
mcdonnnj Jun 3, 2021
ca4306a
Standardize the layout of the Lineage configuration file
mcdonnnj Jun 7, 2021
188e62e
Merge https://github.com/cisagov/skeleton-docker into lineage/skeleton
dav3r Jun 14, 2021
77dae2b
Correct capitalization
dav3r Jun 14, 2021
68948bb
Update the README to reference the latest version of the Docker conta…
jsf9k Jun 15, 2021
d091518
Add a section to the README for ports
jsf9k Jun 15, 2021
ce74596
Merge pull request #62 from cisagov/improvement/use-latest-version-nu…
jsf9k Jun 16, 2021
1f6d090
Document the single exposed (but non-functional) port
jsf9k Jun 16, 2021
bf7a3a7
Merge https://github.com/cisagov/skeleton-docker into lineage/skeleton
Jun 16, 2021
b1aa84c
Merge pull request #61 from cisagov/documentation/add-ports-section
jsf9k Jun 16, 2021
0b9720d
Merge https://github.com/cisagov/skeleton-docker into lineage/skeleton
Jun 16, 2021
0cb1b41
Remove duplicate section inherited from skeleton
dav3r Jun 16, 2021
01d45c9
Update version numbers in README to reference current container version
dav3r Jun 16, 2021
1e8f822
Add style enforcement rules
mcdonnnj Jun 18, 2021
afc6bd6
Add rule for image headers
mcdonnnj Jun 18, 2021
33a28ee
Bump actions/github-script pin from v3 to v4
mcdonnnj Jun 22, 2021
ce173f4
Switch to a YAML markdownlint configuration file
mcdonnnj Jun 18, 2021
f2a4230
Add comments to markdownlint configuration
mcdonnnj Jun 18, 2021
d4781ee
Add the validate_manifest hook from pre-commit
mcdonnnj Jun 24, 2021
106af21
Install terraform and packer for the linting job
jsf9k Jul 9, 2021
c481043
Break out the curl cache creation into its own step
jsf9k Jul 10, 2021
70414cf
Remove unnecessary line in tasks
jsf9k Jul 10, 2021
b629f7f
Modify the Packer installation to model that of Terraform
jsf9k Jul 10, 2021
181d1b2
Install a specific version of terraform-docs
jsf9k Jul 11, 2021
bb6e566
Move go installation so that it takes place before the cache task
jsf9k Jul 12, 2021
337d1ef
Capitalize Go for consistency
jsf9k Jul 12, 2021
8ee2116
Prefer the newer "go install" syntax
jsf9k Jul 13, 2021
e2a729d
Install the shfmt tool for GHA
mcdonnnj Jul 13, 2021
7d5477a
Correct minor version number in README
dav3r Jul 14, 2021
26d132e
Use preferred capitalization for Postfix
dav3r Jul 14, 2021
befdefd
Use preferred capitalization for Postfix
dav3r Jul 14, 2021
406b688
Replace the beautysh hook with pre-commit-shfmt
mcdonnnj Jul 13, 2021
2b48e75
Apply changes from the shfmt pre-commit hook
mcdonnnj Jul 13, 2021
4d37dfb
Use preferred capitalization for Docker Hub
dav3r Jul 15, 2021
eede87c
Satisfy linter by shortening a long line
dav3r Jul 15, 2021
408969a
Use preferred capitalization for Docker Hub
dav3r Jul 15, 2021
51076ed
Capitalize Docker in README
dav3r Jul 15, 2021
440753c
Fix additional Docker and Docker Hub capitalizations
dav3r Jul 15, 2021
1708b5c
Update pre-commit hooks
mcdonnnj Jul 13, 2021
d7dcfee
Merge pull request #83 from cisagov/maintenance/update_pre-commit_hooks
mcdonnnj Jul 19, 2021
c17800a
Merge branch 'develop' into improvement/add_pre-commit_hook
mcdonnnj Jul 19, 2021
41a5286
Merge pull request #80 from cisagov/improvement/add_pre-commit_hook
mcdonnnj Jul 19, 2021
e607360
Merge branch 'develop' into improvement/update_mdl_configuration
mcdonnnj Jul 19, 2021
f6ad0e9
Merge branch 'develop' into improvement/install-tf-and-packer-for-lin…
jsf9k Jul 19, 2021
382c39c
Merge pull request #79 from cisagov/improvement/update_mdl_configuration
mcdonnnj Jul 19, 2021
3e3b918
Merge branch 'develop' into improvement/install-tf-and-packer-for-lin…
mcdonnnj Jul 19, 2021
0e4fc41
Merge pull request #82 from cisagov/improvement/install-tf-and-packer…
mcdonnnj Jul 19, 2021
3e83a80
Merge branch 'develop' into improvement/replace_beautysh_with_shfmt
mcdonnnj Jul 19, 2021
81cdb4d
Merge pull request #84 from cisagov/improvement/replace_beautysh_with…
mcdonnnj Jul 19, 2021
a5e938a
Merge github.com:cisagov/skeleton-generic into lineage/skeleton
mcdonnnj Jul 19, 2021
6ad71a8
Satisfy pre-commit hooks
mcdonnnj Jul 19, 2021
78450f5
Merge pull request #66 from cisagov/lineage/skeleton
mcdonnnj Jul 22, 2021
22951ea
Merge branch 'develop' into improvement/standardize_lineage_configura…
mcdonnnj Jul 22, 2021
0f98fd6
Merge pull request #60 from cisagov/improvement/standardize_lineage_c…
mcdonnnj Jul 22, 2021
fa87fbb
Merge branch 'develop' into update/bump_github-script_to_v4
mcdonnnj Jul 22, 2021
a73c8c9
Merge https://github.com/cisagov/skeleton-docker into lineage/skeleton
Jul 22, 2021
d10c669
Merge pull request #63 from cisagov/update/bump_github-script_to_v4
mcdonnnj Jul 22, 2021
9c8bc18
Merge branch 'develop' into dav3r-patch-1
mcdonnnj Jul 22, 2021
8055509
Merge https://github.com/cisagov/skeleton-docker into lineage/skeleton
Jul 22, 2021
c6aa7f0
Merge pull request #65 from cisagov/dav3r-patch-1
mcdonnnj Jul 23, 2021
d6caf9b
Merge https://github.com/cisagov/skeleton-docker into lineage/skeleton
Jul 23, 2021
57033f8
Resolve merge conflicts
dav3r Aug 5, 2021
dc61277
Merge remote-tracking branch 'skeleton-docker/develop'
dav3r Aug 5, 2021
0151f3e
Satisfy shfmt
dav3r Aug 5, 2021
f1b437c
Merge branch 'develop' into lineage/skeleton
dav3r Aug 5, 2021
8dff8d4
Appease CodeQL
dav3r Aug 5, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
# 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 @hillaryj @jsf9k @mcdonnnj
* @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 @hillaryj @jsf9k @mcdonnnj
/.github/ @dav3r @felddy @jsf9k @mcdonnnj
3 changes: 1 addition & 2 deletions .github/lineage.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
version: "1"

lineage:
skeleton:
remote-url: https://github.com/cisagov/skeleton-docker.git
version: '1'
114 changes: 99 additions & 15 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,13 @@ on:

env:
BUILDX_CACHE_DIR: ~/.cache/buildx
CURL_CACHE_DIR: ~/.cache/curl
IMAGE_NAME: cisagov/postfix
PIP_CACHE_DIR: ~/.cache/pip
PLATFORMS: "linux/amd64,linux/arm/v6,linux/arm/v7,\
linux/arm64,linux/ppc64le,linux/s390x"
PRE_COMMIT_CACHE_DIR: ~/.cache/pre-commit
RUN_TMATE: ${{ secrets.RUN_TMATE }}

jobs:
lint:
Expand All @@ -39,25 +41,88 @@ jobs:
name: "Lint sources"
runs-on: ubuntu-latest
steps:
- uses: cisagov/setup-env-github-action@develop
- uses: actions/checkout@v2
- id: setup-python
uses: actions/setup-python@v2
with:
python-version: 3.9
# GO_VERSION and GOCACHE are used by the cache task, so the Go
# installation must happen before that.
- uses: actions/setup-go@v2
with:
go-version: '1.16'
- name: Store installed Go version
run: |
echo "GO_VERSION="\
"$(go version | sed 's/^go version go\([0-9.]\+\) .*/\1/')" \
>> $GITHUB_ENV
- name: Lookup Go cache directory
id: go-cache
run: |
echo "::set-output name=dir::$(go env GOCACHE)"
- uses: actions/cache@v2
env:
BASE_CACHE_KEY: "${{ github.job }}-${{ runner.os }}-\
py${{ steps.setup-python.outputs.python-version }}-"
py${{ steps.setup-python.outputs.python-version }}-\
go${{ env.GO_VERSION }}-\
packer${{ env.PACKER_VERSION }}-\
tf${{ env.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 }}
key: "${{ env.BASE_CACHE_KEY }}\
${{ hashFiles('**/requirements-test.txt') }}-\
${{ hashFiles('**/requirements.txt') }}-\
${{ hashFiles('**/.pre-commit-config.yaml') }}"
restore-keys: |
${{ env.BASE_CACHE_KEY }}
- name: Setup curl cache
run: mkdir -p ${{ env.CURL_CACHE_DIR }}
- name: Install Packer
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
- name: Install Terraform
run: |
TERRAFORM_ZIP="terraform_${TERRAFORM_VERSION}_linux_amd64.zip"
curl --output ${{ env.CURL_CACHE_DIR }}/"${TERRAFORM_ZIP}" \
--time-cond ${{ env.CURL_CACHE_DIR }}/"${TERRAFORM_ZIP}" \
--location \
"https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/${TERRAFORM_ZIP}"
sudo unzip -d /opt/terraform \
${{ env.CURL_CACHE_DIR }}/"${TERRAFORM_ZIP}"
sudo mv /usr/local/bin/terraform /usr/local/bin/terraform-default
sudo ln -s /opt/terraform/terraform /usr/local/bin/terraform
- name: Install shfmt
run: go install mvdan.cc/sh/v3/cmd/shfmt@${SHFMT_VERSION}
- name: Install Terraform-docs
run: |
go install \
github.com/terraform-docs/terraform-docs@${TERRAFORM_DOCS_VERSION}
- name: Find and initialize Terraform directories
run: |
for path in $(find . -not \( -type d -name ".terraform" -prune \) \
-type f -iname "*.tf" -exec dirname "{}" \; | sort -u); do \
echo "Initializing '$path'..."; \
terraform init -input=false -backend=false "$path"; \
done
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand All @@ -66,7 +131,9 @@ jobs:
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
prepare:
# Calculates and publishes outputs that are used by other jobs.
#
Expand All @@ -79,13 +146,13 @@ jobs:
# The source version as reported by the `bump_version.sh show` command.
# tags:
# A comma separated list of Docker tags to be applied to the images on
# DockerHub. The tags will vary depending on:
# Docker Hub. The tags will vary depending on:
# - The event that triggered the build.
# - The branch the build is based upon.
# - The git tag the build is based upon.
#
# When a build is based on a git tag of the form `v*.*.*` the image will
# be tagged on DockerHub with multiple levels of version specificity.
# be tagged on Docker Hub with multiple levels of version specificity.
# For example, a git tag of `v1.2.3+a` will generate Docker tags of
# `:1.2.3_a`, `:1.2.3`, `:1.2`, `:1`, and `:latest`.
#
Expand Down Expand Up @@ -119,7 +186,7 @@ jobs:
- uses: actions/checkout@v2
- name: Gather repository metadata
id: repo
uses: actions/github-script@v3
uses: actions/github-script@v4
with:
script: |
const repo = await github.repos.get(context.repo)
Expand Down Expand Up @@ -156,14 +223,17 @@ jobs:
if [ "${{ github.event_name }}" = "push" ]; then
TAGS="${TAGS},${IMAGE_NAME}:sha-${GITHUB_SHA::8}"
fi
for i in ${TAGS//,/ }
do
TAGS="${TAGS},ghcr.io/${i}"
done
echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
echo ::set-output name=source_version::$(./bump_version.sh show)
echo ::set-output name=tags::${TAGS}
echo tags=${TAGS}
- name: Setup debug session remote shell
- name: Setup tmate debug session
uses: mxschmitt/action-tmate@v3
if: github.event.inputs.remote-shell == 'true'

if: github.event.inputs.remote-shell == 'true' || env.RUN_TMATE
build:
# Builds a single test image for the native platform. This image is saved
# as an artifact and loaded by the test job.
Expand Down Expand Up @@ -232,7 +302,9 @@ jobs:
with:
name: dist
path: dist

- name: Setup tmate debug session
uses: mxschmitt/action-tmate@v3
if: env.RUN_TMATE
test:
# Executes tests on the single-platform image created in the "build" job.
name: "Test image"
Expand Down Expand Up @@ -271,23 +343,32 @@ jobs:
env:
RELEASE_TAG: ${{ github.event.release.tag_name }}
run: pytest --runslow

- name: Setup tmate debug session
uses: mxschmitt/action-tmate@v3
if: env.RUN_TMATE
build-push-all:
# Builds the final set of images for each of the platforms listed in
# PLATFORMS environment variable. These images are tagged with the Docker
# tags calculated in the "prepare" job and pushed to DockerHub. The
# contents of README.md is pushed as the image's description. This job is
# skipped when the triggering event is a pull request.
# tags calculated in the "prepare" job and pushed to Docker Hub and the
# GitHub Container Registry. The contents of README.md are pushed as the
# image's description to Docker Hub. This job is skipped when the
# triggering event is a pull request.
name: "Build and push all platforms"
runs-on: ubuntu-latest
needs: [lint, prepare, test]
if: github.event_name != 'pull_request'
steps:
- name: Login to DockerHub
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
Expand All @@ -305,7 +386,7 @@ jobs:
${{ env.BASE_CACHE_KEY }}
- name: Create cross-platform support Dockerfile-x
run: ./buildx-dockerfile.sh
- name: Build and push platform images to Docker Hub
- name: Build and push platform images to registries
id: docker_build
uses: docker/build-push-action@v2
with:
Expand Down Expand Up @@ -348,3 +429,6 @@ jobs:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
run: ./push_readme.sh
- name: Setup tmate debug session
uses: mxschmitt/action-tmate@v3
if: env.RUN_TMATE
3 changes: 3 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ name: "CodeQL"

on:
push:
# Dependabot triggered push events have read-only access, but uploading code
# scanning requires write access.
branches-ignore: [dependabot/**]
pull_request:
# The branches below must be a subset of the branches above
branches: [develop]
Expand Down
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# This file specifies intentionally untracked files that Git should ignore.
# Files already tracked by Git are not affected.
# See: https://git-scm.com/docs/gitignore

## Docker ##
Dockerfile-x

## Python ##
__pycache__
.mypy_cache
.pytest_cache
.python-version
Dockerfile-x
10 changes: 0 additions & 10 deletions .mdl_config.json

This file was deleted.

40 changes: 40 additions & 0 deletions .mdl_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---

# Default state for all rules
default: true

# MD003/heading-style/header-style - Heading style
MD003:
# Enforce the ATX-closed style of header
style: "atx_closed"

# MD004/ul-style - Unordered list style
MD004:
# Enforce dashes for unordered lists
style: "dash"

# MD013/line-length - Line length
MD013:
# Do not enforce for code blocks
code_blocks: false
# Do not enforce for tables
tables: false

# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the
# same content
MD024:
# Allow headers with the same content as long as they are not in the same
# parent heading
allow_different_nesting: true

# MD029/ol-prefix - Ordered list item prefix
MD029:
# Enforce the `1.` style for ordered lists
style: "one"

# MD033/no-inline-html - Inline HTML
MD033:
# The h1 and img elements are allowed to permit header images
allowed_elements:
- h1
- img
Loading