pact-foundation / pact-ruby-cli

Amalgamated Pact Ruby CLI
https://pact.io
MIT License
11 stars 15 forks source link

Release node base image in new Github Actions release workflow #28

Open bethesque opened 2 years ago

YOU54F commented 2 years ago

I'm a bit confused by the state of play here

There are three Dockerfile(s)

  1. Dockerfile here
  2. Dockerfile-node-14 here
  3. Dockerfile-bundle-base here

Do we just need to release 3?

I fixed the build pipeline, for 1, so it is publishing again


  1. Dockerfile
    • Workflow is triggered here
    • Run script here
    • base Dockerfile is used here
    • DOCKER_IMAGE_ORG_AND_NAME is set to pactfoundation/pact-cli
    • Dockerhub image is here
  2. Dockerfile-node-14
  1. Dockerfile-bundle-base
bethesque commented 2 years ago

We used to have an automatic build in Dockerhub. Since we lost the free builds there due to Dockerhub's change in policy, I moved the builds to Github Actions. I migrated the default dockerfile, but never got around to migrating the Dockerfile-node-14 one. The tags are the same with -node14 on the end https://hub.docker.com/repository/docker/pactfoundation/pact-cli/tags?page=1&ordering=last_updated&name=node

Dockerfile-bundle-base is only used in the update process. It is not published anywhere.

YOU54F commented 1 year ago

I did the work on the image to update it, but I'm not sure how much use it is going to be to pact-js (node users)

current guidance is don't use alpine

https://docs.pact.io/docker#alpine-linux

We release a musl artefact for the pact ffi, its a static lib .a and I've not found a way to load it in alpine yet,

https://github.com/pact-foundation/pact-reference/releases/tag/libpact_ffi-v0.4.4

I've unofficially been building additional pact ffi targets

https://github.com/YOU54F/pact-reference/blob/multi_arch/COMPATIBILITY.md

and got .so's built for alpine, and tested with ruby in alpine, just for the lolz (it works 🚀 )

Would need client libs that use the pact_ffi to detect the user is on linux, but also a musl(er) distro. I think ruby has detection for that, as it supports musl platforms

https://github.com/rubygems/rubygems/issues/2918