Skip to content

maint: Update GoReleaser and CircleCI configs to publish multi-arch Docker image#1682

Merged
cdhunt merged 36 commits into
masterfrom
fix/cci
Aug 12, 2022
Merged

maint: Update GoReleaser and CircleCI configs to publish multi-arch Docker image#1682
cdhunt merged 36 commits into
masterfrom
fix/cci

Conversation

@cdhunt
Copy link
Copy Markdown
Contributor

@cdhunt cdhunt commented Aug 10, 2022

This PR resolves a number of CircleCI Pipeline issues.

  • Improve the filtering for the release job only on tag creation.
  • Removes the dependency on integration-tests job from the release job. The flaky tests were frequently blocking the release.
    • Integration tests will now only run on PRs.
  • Restores the Docker build/publish
    • Includes amd64, arm64, and i386 multi-arch manifest
  • Uploads artifacts to CircleCI
  • Fixes linting issues with README
  • Add CircleCI Insights badge to README
  • Uploads deb and rpm packages to CloudSmith
    • TODO: It looks like CloudSmith treats both format as duplicates and appends a -1 to the version.
    • TODO: Push the Docker images to CloudSmith as well (alternate to Docker Hub and their aggressive rate limits).
  • TODO: The automated release notes regex patterns don't work for most of the commits. See releases/tag/v3.18.2-pre013

@tlimoncelli
Copy link
Copy Markdown
Contributor

CC @cafferata

@cdhunt
Copy link
Copy Markdown
Contributor Author

cdhunt commented Aug 12, 2022

Test the multi-arch manifest:

docker run --rm -it stackexchange/dnscontrol:v3.18.2-pre013 version

@cdhunt cdhunt changed the title Fix tag filtering maint: Update GoReleaser and CircleCI configs to publish multi-arch Docker image Aug 12, 2022
@cdhunt cdhunt requested a review from tlimoncelli August 12, 2022 14:59
@cdhunt cdhunt self-assigned this Aug 12, 2022
@jauderho
Copy link
Copy Markdown
Contributor

One item that is unclear to me is that it looks like GoReleaser is used to create the binaries but not the Docker images. Given that it can do both and that there is evidence this was the case at one point, is there a reason not to do so?

@cdhunt
Copy link
Copy Markdown
Contributor Author

cdhunt commented Aug 12, 2022

@jauderho It is building all artifacts including the docker images in this branch.

Copy link
Copy Markdown
Contributor

@tlimoncelli tlimoncelli left a comment

Choose a reason for hiding this comment

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

Wow! So much goodness in here!

@tlimoncelli
Copy link
Copy Markdown
Contributor

(I'll let you do the merge)

@cdhunt
Copy link
Copy Markdown
Contributor Author

cdhunt commented Aug 12, 2022

@jauderho I guess more specifically, it is basically just invoking docker buildx build -f Dockerfile . We still need a Dockerfile and instaed rebuilding everything in the docker build I just copy in the binaries that gorelease spits out. I think Goreaser does some magic to put the version of dnscontrol matching the arch in the root of dist. I need to get a colleague to test on an M1 Mac.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants