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

Upgrade Go and dependencies; CI and Docker fixes #434

Merged
merged 7 commits into from
Feb 20, 2024

Conversation

sheurich
Copy link
Contributor

@sheurich sheurich commented Feb 17, 2024

Keeping current:

  • Upgrade Go to v1.21
  • Upgrade Go dependencies
    • Upgrade github.com/miekg/dns to v1.1.58
    • Upgrade indirect dependencies
  • Fixes for appveyor
    • Upgrade to supported image VS 2019
    • Upgrade to supported Python v3.8
  • Fixes for golangci-lint
    • Use supported installation method
  • Upgrade Docker base images to be supported and match Go version
    • Alpine v3.16 and Nanoserver v1806

Addresses:

@sheurich sheurich marked this pull request as draft February 17, 2024 21:32
@sheurich sheurich marked this pull request as ready for review February 20, 2024 13:30
@sheurich sheurich changed the title upgrade go and deps Upgrade Go and dependencies; CI fixes Feb 20, 2024
@sheurich sheurich changed the title Upgrade Go and dependencies; CI fixes Upgrade Go and dependencies; CI and Docker fixes Feb 20, 2024
Copy link
Contributor

@jsha jsha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! Thanks so much for the updates.

@jsha jsha merged commit 3fe019b into letsencrypt:main Feb 20, 2024
1 check passed
@sheurich sheurich deleted the upgrade-go-and-deps branch February 20, 2024 22:49
@sheurich
Copy link
Contributor Author

On this topic:

  1. Is Windows Container support needed going forward?
  2. Can we use GitHub Actions in lieu of Appveyor and Travis?
  3. Is the purpose of the docker-compose.yml for testing Pebble or testing other clients against Pebble? If both, should the use-cases be separated out?

@jsha
Copy link
Contributor

jsha commented Feb 22, 2024

Is Windows Container support needed going forward?

I think so. @wgreenberg can you confirm? If it's not needed for Certbot I'm inclined to drop it.

Can we use GitHub Actions in lieu of Appveyor and Travis?

Yes, very much so; I've been meaning to make this change for a while, and publish containers via ghcr. If you have a chance to do that it would be wonderful.

Is the purpose of the docker-compose.yml for testing Pebble or testing other clients against Pebble? If both, should the use-cases be separated out?

Looking back at when it was added in #181, "The stand-alone binary with an HTTP management interface can come live in the Pebble repo where more folks can use it without pulling in all of Boulder. I've heard from a few ACME client developers that this would be useful to them." So I interpret that to be "it's useful for testing other clients against Pebble." AFAICT the docker-compose.yml is not used for testing Pebble.

@sheurich
Copy link
Contributor Author

sheurich commented Feb 25, 2024

#439 has follow-on work related to

Fixes for golangci-lint

and also builds towards GitHub Actions wip in https://github.com/fastly/pebble/tree/main

A GHA PoC is available at https://github.com/fastly/pebble/actions/runs/8034580298

@wgreenberg
Copy link
Contributor

@jsha correct, Certbot won't need testing in Windows environments going forward.

mcpherrinm pushed a commit that referenced this pull request Mar 12, 2024
…mages (#444)

[![Checks](https://github.com/fastly/pebble/actions/workflows/checks.yml/badge.svg)](https://github.com/fastly/pebble/actions/workflows/checks.yml)

[![Tests](https://github.com/fastly/pebble/actions/workflows/tests.yml/badge.svg)](https://github.com/fastly/pebble/actions/workflows/tests.yml)

As a follow-on to #439 this
change request implements the first step of building a new CI system for
Pebble. As this is a testbed environment for Boulder, some of these
changes may prove to be useful in the latter context.

Per
#434 (comment),
GitHub Actions is a reasonable choice for a new CI implementation to
supersede Travis. Much, but not all, of the existing functionality is
present in this initial set of changes.

Items currently implemented include:
- Binary production of `pebble` and `challtestsrv` for platforms:
  - AMD64
    - darwin
    - linux
    - windows
  - ARM64
    - darwin
    - linux
    - windows
- Multiplatform docker images published on the GitHub Container Registry
for platforms:
  - linux/amd64
  - linux/arm64
  - windows/amd64
- Golang linting.
- Golang coverage.
- Local test scripts for Go and Docker:
  - `./build.sh`
  - `./docker.sh`
  - `./test.sh`

This PR also adds a `-version` flag to Pebble, which is set during
release build to the Git commit ref.

This change builds on earlier work done in
#379 and
#442.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants