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

Build Docker container for CI use #22

Closed
atc0005 opened this issue Jun 9, 2020 · 6 comments
Closed

Build Docker container for CI use #22

atc0005 opened this issue Jun 9, 2020 · 6 comments

Comments

@atc0005
Copy link
Owner

atc0005 commented Jun 9, 2020

This should hopefully remove the need to keep updating various linting tools per-project and instead focus those efforts solely on keeping the container updated for multi-project use.

@atc0005
Copy link
Owner Author

atc0005 commented Jun 27, 2020

@atc0005
Copy link
Owner Author

atc0005 commented Jun 28, 2020

Useful ideas here:

https://github.com/sjkaliski/go-github-actions

Items to note for the fmt Dockerfile:

  • uses a single container build
  • does not clear the apt cache after refresh/pkg installation
  • uses upstream Golang container (instead of reinventing the installation process)

atc0005 added a commit to atc0005/brick that referenced this issue Jul 22, 2020
- Remove golint call from Makefile
- Remove `--exclude-use-default` CLI flag
- Add explicit config settings to disable default exclusions

This same config change will need to be pushed to all other
repos where I am using this config set.

Note to self: Docker container sooner than later perhaps?

- refs #92
- refs atc0005/todo#29
- refs atc0005/todo#22
atc0005 added a commit to atc0005/brick that referenced this issue Jul 22, 2020
- Remove golint call from Makefile
- Remove `--exclude-use-default` CLI flag
- Add explicit config settings to disable default exclusions

This same config change will need to be pushed to all other
repos where I am using this config set.

Note to self: Docker container sooner than later perhaps?

- refs #92
- refs atc0005/todo#29
- refs atc0005/todo#22
atc0005 added a commit to atc0005/dnsc that referenced this issue Jul 28, 2020
Add explicit config settings to disable default exclusions

This same config change will need to be pushed to all other
repos where I am using this config set.

Note to self: Docker container sooner than later perhaps?

- refs atc0005/todo#29
- refs atc0005/todo#22
atc0005 added a commit to atc0005/dnsc that referenced this issue Jul 28, 2020
Add explicit config settings to disable default exclusions

This same config change will need to be pushed to all other
repos where I am using this config set.

Note to self: Docker container sooner than later perhaps?

- refs atc0005/todo#29
- refs atc0005/todo#22
@atc0005
Copy link
Owner Author

atc0005 commented Jul 30, 2020

Spinning off a separate project: atc0005/go-ci to handle creation, maintenance and releases for CI-focused containers. Will focus on this for a while before returning to other projects.

atc0005 added a commit to atc0005/dnsc that referenced this issue Jul 31, 2020
Add explicit config settings to disable default exclusions

This same config change will need to be pushed to all other
repos where I am using this config set.

Note to self: Docker container sooner than later perhaps?

- refs atc0005/todo#29
- refs atc0005/todo#22
@atc0005
Copy link
Owner Author

atc0005 commented Jul 31, 2020

Spinning off a separate project: atc0005/go-ci to handle creation, maintenance and releases for CI-focused containers. Will focus on this for a while before returning to other projects.

Implemented for the atc0005/dnsc project. Working well enough thus far, even if the images are a little on the large size (~ 850 MB).

@atc0005
Copy link
Owner Author

atc0005 commented Aug 4, 2020

At this point I believe that these projects have been fully updated to use the new workflows:

  • atc0005/elbow
  • atc0005/dnsc

@atc0005
Copy link
Owner Author

atc0005 commented Aug 6, 2020

Using a project now to track the remaining work to wire up each repo to use the new container.

The scope of this item is complete.

atc0005 added a commit to atc0005/go-lockss that referenced this issue Aug 15, 2020
CHANGES

Add GitHub Actions which use containers created and managed through
the `atc0005/go-ci` project.

This results in three workflows:

- New, primary workflow
  - with parallel linting, testing and building tasks
  - with three Go environments
    - "old stable" - currently `Go 1.14.7`
    - "stable" - currently `Go 1.15.0`
    - "unstable" - currently `Go 1.15rc2`
      - this will be replaced with the next alpha, beta, rc release of
        Go and other linting tools that are not tested well enough to
        be considered "stable"
  - Makefile is *not* used in this workflow
  - `staticcheck` linting using latest stable version provided by the
    `atc0005/go-ci` containers

- Separate Makefile-based linting and building workflow
  - intended to help ensure that local Makefile-based
    builds that are referenced in project README files
    continue to work as advertised until a better local
    tool can be discovered/explored further
  - use `golang:latest` container to allow for Makefile-based
    linting tooling installation testing since the
    `atc0005/go-ci` project provides containers with those
    tools already pre-installed
    - linting tasks use container-provided `golangci-lint` config file
    *except* for the Makefile-driven linting task which continues to use
    the repo-provided copy of the `golangci-lint` configuration file

- Add Quick Validation workflow
  - run on every push, everything else on pull request updates
  - linting via `golangci-lint` only
  - testing
  - no builds

Other changes:

- Makefile `lintinstall` recipe installs the very latest
  stable version of the `golangci-lint` binary instead
  of locking a specific version
  - this should reduce dependency "gardening"

REFERENCES

- refs GH-5
- refs atc0005/todo#22
- see also the https://github.com/atc0005/go-ci project
atc0005 added a commit to atc0005/send2teams that referenced this issue Aug 21, 2020
CHANGES

Add GitHub Actions which use containers created and managed through
the `atc0005/go-ci` project.

This results in three workflows:

- New, primary workflow
  - with parallel linting, testing and building tasks
  - with three Go environments
    - "old stable" - currently `Go 1.14.7`
    - "stable" - currently `Go 1.15.0`
    - "unstable" - currently `Go 1.15rc2`
      - this will be replaced with the next alpha, beta, rc release of
        Go and other linting tools that are not tested well enough to
        be considered "stable"
  - Makefile is *not* used in this workflow
  - `staticcheck` linting using latest stable version provided by the
    `atc0005/go-ci` containers

- Separate Makefile-based linting and building workflow
  - intended to help ensure that local Makefile-based
    builds that are referenced in project README files
    continue to work as advertised until a better local
    tool can be discovered/explored further
  - use `golang:latest` container to allow for Makefile-based
    linting tooling installation testing since the
    `atc0005/go-ci` project provides containers with those
    tools already pre-installed
    - linting tasks use container-provided `golangci-lint` config file
      *except* for the Makefile-driven linting task which continues to
      use the repo-provided copy of the `golangci-lint` configuration
      file

- Add Quick Validation workflow
  - run on every push, everything else on pull request updates
  - linting via `golangci-lint` only
  - testing
  - no builds

Other changes:

- Makefile `lintinstall` recipe installs the very latest
  stable version of the `golangci-lint` binary instead
  of locking a specific version
  - this should reduce dependency "gardening"

REFERENCES

- refs GH-95
- refs atc0005/todo#22
- see also the https://github.com/atc0005/go-ci project
atc0005 added a commit to atc0005/check-cert that referenced this issue Aug 21, 2020
CHANGES

Add GitHub Actions which use containers created and managed through
the `atc0005/go-ci` project.

This results in three workflows:

- New, primary workflow
  - with parallel linting, testing and building tasks
  - with three Go environments
    - "old stable"
    - "stable"
    - "unstable"
      - this will be replaced with the next alpha, beta, rc release of
        Go and other linting tools that are not tested well enough to
        be considered "stable"
  - Makefile is *not* used in this workflow
  - `staticcheck` linting using latest stable version provided by the
    `atc0005/go-ci` containers

- Separate Makefile-based linting and building workflow
  - intended to help ensure that local Makefile-based
    builds that are referenced in project README files
    continue to work as advertised until a better local
    tool can be discovered/explored further
  - use `golang:latest` container to allow for Makefile-based
    linting tooling installation testing since the
    `atc0005/go-ci` project provides containers with those
    tools already pre-installed
    - linting tasks use container-provided `golangci-lint` config file
      *except* for the Makefile-driven linting task which continues to
      use the repo-provided copy of the `golangci-lint` configuration
      file

- Add Quick Validation workflow
  - run on every push, everything else on pull request updates
  - linting via `golangci-lint` only
  - testing
  - no builds

Other changes:

- Makefile `lintinstall` recipe installs the very latest
  stable version of the `golangci-lint` binary instead
  of locking a specific version
  - this should reduce dependency "gardening"

REFERENCES

- refs GH-56
- refs atc0005/todo#22
- see also the https://github.com/atc0005/go-ci project
atc0005 added a commit to atc0005/check-cert that referenced this issue Aug 21, 2020
CHANGES

Add GitHub Actions which use containers created and managed through
the `atc0005/go-ci` project.

This results in three workflows:

- New, primary workflow
  - with parallel linting, testing and building tasks
  - with three Go environments
    - "old stable"
    - "stable"
    - "unstable"
      - this will be replaced with the next alpha, beta, rc release of
        Go and other linting tools that are not tested well enough to
        be considered "stable"
  - Makefile is *not* used in this workflow
  - `staticcheck` linting using latest stable version provided by the
    `atc0005/go-ci` containers

- Separate Makefile-based linting and building workflow
  - intended to help ensure that local Makefile-based
    builds that are referenced in project README files
    continue to work as advertised until a better local
    tool can be discovered/explored further
  - use `golang:latest` container to allow for Makefile-based
    linting tooling installation testing since the
    `atc0005/go-ci` project provides containers with those
    tools already pre-installed
    - linting tasks use container-provided `golangci-lint` config file
      *except* for the Makefile-driven linting task which continues to
      use the repo-provided copy of the `golangci-lint` configuration
      file

- Add Quick Validation workflow
  - run on every push, everything else on pull request updates
  - linting via `golangci-lint` only
  - testing
  - no builds

Other changes:

- Makefile `lintinstall` recipe installs the very latest
  stable version of the `golangci-lint` binary instead
  of locking a specific version
  - this should reduce dependency "gardening"

REFERENCES

- refs GH-56
- refs atc0005/todo#22
- see also the https://github.com/atc0005/go-ci project
atc0005 added a commit to atc0005/bridge that referenced this issue Aug 22, 2020
CHANGES

Add GitHub Actions which use containers created and managed through
the `atc0005/go-ci` project.

This results in three workflows:

- New, primary workflow
  - with parallel linting, testing and building tasks
  - with three Go environments
    - "old stable"
    - "stable"
    - "unstable"
      - this will be replaced with the next alpha, beta, rc release of
        Go and other linting tools that are not tested well enough to
        be considered "stable"
  - Makefile is *not* used in this workflow
  - `staticcheck` linting using latest stable version provided by the
    `atc0005/go-ci` containers

- Separate Makefile-based linting and building workflow
  - intended to help ensure that local Makefile-based
    builds that are referenced in project README files
    continue to work as advertised until a better local
    tool can be discovered/explored further
  - use `golang:latest` container to allow for Makefile-based
    linting tooling installation testing since the
    `atc0005/go-ci` project provides containers with those
    tools already pre-installed
    - linting tasks use container-provided `golangci-lint` config file
      *except* for the Makefile-driven linting task which continues to
      use the repo-provided copy of the `golangci-lint` configuration
      file

- Add Quick Validation workflow
  - run on every push, everything else on pull request updates
  - linting via `golangci-lint` only
  - testing
  - no builds

Other changes:

- Makefile `lintinstall` recipe installs the very latest
  stable version of the `golangci-lint` binary instead
  of locking a specific version
  - this should reduce dependency "gardening"

REFERENCES

- refs GH-96
- refs atc0005/todo#22
- see also the https://github.com/atc0005/go-ci project
atc0005 added a commit to atc0005/nagios-debug that referenced this issue Aug 22, 2020
CHANGES

Add GitHub Actions which use containers created and managed through
the `atc0005/go-ci` project.

This results in three workflows:

- New, primary workflow
  - with parallel linting, testing and building tasks
  - with three Go environments
    - "old stable"
    - "stable"
    - "unstable"
      - this will be replaced with the next alpha, beta, rc release of
        Go and other linting tools that are not tested well enough to
        be considered "stable"
  - Makefile is *not* used in this workflow
  - `staticcheck` linting using latest stable version provided by the
    `atc0005/go-ci` containers

- Separate Makefile-based linting and building workflow
  - intended to help ensure that local Makefile-based
    builds that are referenced in project README files
    continue to work as advertised until a better local
    tool can be discovered/explored further
  - use `golang:latest` container to allow for Makefile-based
    linting tooling installation testing since the
    `atc0005/go-ci` project provides containers with those
    tools already pre-installed
    - linting tasks use container-provided `golangci-lint` config file
      *except* for the Makefile-driven linting task which continues to
      use the repo-provided copy of the `golangci-lint` configuration
      file

- Add Quick Validation workflow
  - run on every push, everything else on pull request updates
  - linting via `golangci-lint` only
  - testing
  - no builds

Other changes:

- Makefile `lintinstall` recipe installs the very latest
  stable version of the `golangci-lint` binary instead
  of locking a specific version
  - this should reduce dependency "gardening"

REFERENCES

- refs GH-22
- refs atc0005/todo#22
- see also the https://github.com/atc0005/go-ci project
atc0005 added a commit to atc0005/check-mail that referenced this issue Aug 23, 2020
CHANGES

Add GitHub Actions which use containers created and managed through
the `atc0005/go-ci` project.

This results in three workflows:

- New, primary workflow
  - with parallel linting, testing and building tasks
  - with three Go environments
    - "old stable"
    - "stable"
    - "unstable"
      - this will be replaced with the next alpha, beta, rc release of
        Go and other linting tools that are not tested well enough to
        be considered "stable"
  - Makefile is *not* used in this workflow
  - `staticcheck` linting using latest stable version provided by the
    `atc0005/go-ci` containers

- Separate Makefile-based linting and building workflow
  - intended to help ensure that local Makefile-based
    builds that are referenced in project README files
    continue to work as advertised until a better local
    tool can be discovered/explored further
  - use `golang:latest` container to allow for Makefile-based
    linting tooling installation testing since the
    `atc0005/go-ci` project provides containers with those
    tools already pre-installed
    - linting tasks use container-provided `golangci-lint` config file
      *except* for the Makefile-driven linting task which continues to
      use the repo-provided copy of the `golangci-lint` configuration
      file

- Add Quick Validation workflow
  - run on every push, everything else on pull request updates
  - linting via `golangci-lint` only
  - testing
  - no builds

Other changes:

- Makefile `lintinstall` recipe installs the very latest
  stable version of the `golangci-lint` binary instead
  of locking a specific version
  - this should reduce dependency "gardening"

REFERENCES

- refs GH-66
- refs atc0005/todo#22
- see also the https://github.com/atc0005/go-ci project
atc0005 added a commit to atc0005/go-nagios that referenced this issue Aug 23, 2020
CHANGES

Add GitHub Actions which use containers created and managed through
the `atc0005/go-ci` project.

This results in three workflows:

- New, primary workflow
  - with parallel linting, testing and building tasks
  - with three Go environments
    - "old stable"
    - "stable"
    - "unstable"
      - this will be replaced with the next alpha, beta, rc release of
        Go and other linting tools that are not tested well enough to
        be considered "stable"
  - Makefile is *not* used in this workflow
  - `staticcheck` linting using latest stable version provided by the
    `atc0005/go-ci` containers

- Separate Makefile-based linting and building workflow
  - intended to help ensure that local Makefile-based
    builds that are referenced in project README files
    continue to work as advertised until a better local
    tool can be discovered/explored further
  - use `golang:latest` container to allow for Makefile-based
    linting tooling installation testing since the
    `atc0005/go-ci` project provides containers with those
    tools already pre-installed
    - linting tasks use container-provided `golangci-lint` config file
      *except* for the Makefile-driven linting task which continues to
      use the repo-provided copy of the `golangci-lint` configuration
      file

- Add Quick Validation workflow
  - run on every push, everything else on pull request updates
  - linting via `golangci-lint` only
  - testing
  - no builds

Other changes:

- Makefile `lintinstall` recipe installs the very latest
  stable version of the `golangci-lint` binary instead
  of locking a specific version
  - this should reduce dependency "gardening"

REFERENCES

- refs GH-21
- refs atc0005/todo#22
- see also the https://github.com/atc0005/go-ci project
atc0005 added a commit to atc0005/go-ezproxy that referenced this issue Aug 23, 2020
CHANGES

Add GitHub Actions which use containers created and managed through
the `atc0005/go-ci` project.

This results in three workflows:

- New, primary workflow
  - with parallel linting, testing and building tasks
  - with three Go environments
    - "old stable"
    - "stable"
    - "unstable"
      - this will be replaced with the next alpha, beta, rc release of
        Go and other linting tools that are not tested well enough to
        be considered "stable"
  - Makefile is *not* used in this workflow
  - `staticcheck` linting using latest stable version provided by the
    `atc0005/go-ci` containers

- Separate Makefile-based linting and building workflow
  - intended to help ensure that local Makefile-based
    builds that are referenced in project README files
    continue to work as advertised until a better local
    tool can be discovered/explored further
  - use `golang:latest` container to allow for Makefile-based
    linting tooling installation testing since the
    `atc0005/go-ci` project provides containers with those
    tools already pre-installed
    - linting tasks use container-provided `golangci-lint` config file
      *except* for the Makefile-driven linting task which continues to
      use the repo-provided copy of the `golangci-lint` configuration
      file

- Add Quick Validation workflow
  - run on every push, everything else on pull request updates
  - linting via `golangci-lint` only
  - testing
  - no builds

Other changes:

- Makefile `lintinstall` recipe installs the very latest
  stable version of the `golangci-lint` binary instead
  of locking a specific version
  - this should reduce dependency "gardening"

REFERENCES

- refs GH-41
- refs atc0005/todo#22
- see also the https://github.com/atc0005/go-ci project
atc0005 added a commit to atc0005/go-teams-notify that referenced this issue Aug 23, 2020
CHANGES

Add GitHub Actions which use containers created and managed through
the `atc0005/go-ci` project.

This results in three workflows:

- New, primary workflow
  - with parallel linting, testing and building tasks
  - with three Go environments
    - "old stable"
    - "stable"
    - "unstable"
      - this will be replaced with the next alpha, beta, rc release of
        Go and other linting tools that are not tested well enough to
        be considered "stable"
  - Makefile is *not* used in this workflow
  - `staticcheck` linting using latest stable version provided by the
    `atc0005/go-ci` containers

- Separate Makefile-based linting and building workflow
  - intended to help ensure that local Makefile-based
    builds that are referenced in project README files
    continue to work as advertised until a better local
    tool can be discovered/explored further
  - use `golang:latest` container to allow for Makefile-based
    linting tooling installation testing since the
    `atc0005/go-ci` project provides containers with those
    tools already pre-installed
    - linting tasks use container-provided `golangci-lint` config file
      *except* for the Makefile-driven linting task which continues to
      use the repo-provided copy of the `golangci-lint` configuration
      file

- Add Quick Validation workflow
  - run on every push, everything else on pull request updates
  - linting via `golangci-lint` only
  - testing
  - no builds

Other changes:

- Makefile `lintinstall` recipe installs the very latest
  stable version of the `golangci-lint` binary instead
  of locking a specific version
  - this should reduce dependency "gardening"

REFERENCES

- refs #1
- refs atc0005/todo#22
- see also the https://github.com/atc0005/go-ci project
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

No branches or pull requests

1 participant