Hello Bertil,

Thanks for the update! That sounds good from my side - I'm not sure I've
seen other projects also do the upload to dist.apache.org from CI, Infra
might have more background on whether/how to best achieve that.


Kind regards,

Arnout

On Wed, Mar 20, 2024 at 10:56 PM Bertil Chapuis <bchap...@gmail.com> wrote:

> Hello Arnout,
>
> The workflow and the instructions have now been updated and they ensure
> that our builds are bit-by-bit reproducible. Building the release on linux
> or on a mac from the release tag with OpenJDK 17 and maven wrapper produces
> the same tar.gz files as the one produced by the GitHub Actions workflow.
>
> The release instructions [2] describe the overall process. The idea
> consists in tagging the repository with candidate tags (e.g. v0.7.3-rc1),
> until one gets approved. Then, a tag for the release is create (e.g.
> v0.7.3) on the hash of the latest candidate. Some information are also
> included in the release instructions to reproduce the builds locally with
> docker.
>
> The GitHub secrets required by the pipeline are listed below and in the
> workflow [3]:
> - GPG_KEY_ID (tested)
> - GPG_PRIVATE_KEY (tested)
> - GPG_PASSPHRASE (tested)
> - GITHUB_TOKEN (tested)
> - APACHE_USERNAME (not tested)
> - APACHE_PASSWORD (not tested)
> - NEXUS_USERNAME (not tested)
> - NEXUS_PASSWORD (not tested)
>
> As the signing, hashing, and publication of release candidates works well
> on GitHub[4], I’m pretty confident that the publication on the dist Apache
> server will be relatively easy once the secrets are set. I’m a bit less
> confident with the publication on nexus (limited experience), but our
> pipeline used to work with maven central in the past. In both cases, we
> will first ensure that the automation of the process works well for release
> candidates by enabling the publication on dev and staging. Once the process
> gets stable and well tested, we will replicate it on dist and releases.
>
> I hope these improvements make things clearer. Please let me know if you
> need further information. I’d also be interested in knowing if smoke tests
> are possible for the publication on the apache server and on nexus.
>
> Best regards,
>
> Bertil
>
> [1] https://github.com/apache/incubator-baremaps/pull/844
> [2]
> https://github.com/apache/incubator-baremaps/blob/f34e4527d9e769ca7e21d6d6534aa07f137ab3a4/RELEASE.md
> [3]
> https://github.com/apache/incubator-baremaps/blob/f34e4527d9e769ca7e21d6d6534aa07f137ab3a4/.github/workflows/candidate.yml
> [4] https://github.com/apache/incubator-baremaps/releases
>
>
> > On 15 Mar 2024, at 15:02, Bertil Chapuis <bchap...@gmail.com> wrote:
> >
> > Hi Arnout,
> >
> > Thanks a lot for your answer. The old process is documented and the new
> one has not yet been finalised. That being said, I haven’t checked if it is
> bit-by-bit reproducible. I will try to see what it means in our case and
> come back to you once we have more information.
> >
> > Best regards,
> >
> > Bertil
> >
> >> On 15 Mar 2024, at 14:12, Arnout Engelen <enge...@apache.org> wrote:
> >>
> >> Hi Bertil, baremaps PPMC,
> >>
> >> Thanks for checking! That sounds pretty good already.
> >>
> >> Part of the challenge in releasing from CI is that CI systems are
> >> notoriously hard to secure, and an undetected supply-chain attack
> >> could lead to publishing artifacts with injected malware. For that
> >> reason I'm sure you've seen that we require that you make your build
> >> bit-by-bit reproducible, and include steps in your release process to
> >> make sure you reproduce the build on independent hardware before
> >> promoting your release. Have you started documenting your release
> >> procedure yet? Have you included reproducing the artifacts as a step?
> >>
> >>
> >> Kind regards,
> >>
> >> Arnout
> >>
> >>
> >> On Fri, Mar 15, 2024 at 11:04 AM Bertil Chapuis <bchap...@gmail.com>
> wrote:
> >>>
> >>> Hello Apache Security Team,
> >>>
> >>> We are currently trying to automate the release process of Apache
> Baremaps (incubating) [1]. As highlighted in the documentation, it seems
> possible to get github secrets to sign artifacts [2]. Other projects are
> also using a nexus username and password to publish maven snapshots and
> releases [3, 4].
> >>>
> >>> To do so, we drafted two release workflows on Github Actions.
> >>> - The first one [5] publishes a pre release on GitHub. The source and
> binary artifacts are signed and hashed. This workflow is working currently
> works with a test key set as a secret in our CI.
> >>> - The second one [6] tries to publish snapshot artifacts on Nexus.
> Later on, the intent is also to automate the publication of release
> artifacts. This workflow currently fails with a 401 Unauthorized error.
> >>>
> >>> The INFRA Team asked for a review of the workflow by the security team
> before setting the following secrets in the CI.
> >>> - NEXUS_USERNAME
> >>> - NEXUS_PASSWORD
> >>> - GPG_KEY_ID
> >>> - GPG_PASSPHRASE
> >>> - GPG_PRIVATE_KEY
> >>>
> >>> Thanks a lot for your help,
> >>>
> >>> Bertil Chapuis
> >>>
> >>> [1] https://github.com/apache/incubator-baremaps/issues/752
> >>> [2]
> https://infra.apache.org/release-signing.html#automated-release-signing
> >>> [3]
> https://github.com/apache/drill/blob/26f4d30dbefcc09a7dfe05576d3f9c7b45d822a0/.github/workflows/publish-snapshot.yml#L42
> >>> [4] https://infra.apache.org/publishing-maven-artifacts.html
> >>> [5]
> https://github.com/apache/incubator-baremaps/blob/293da521086c402ce78be931a8e90ecb50e58e7e/.github/workflows/release.yml
> >>> [6]
> https://github.com/apache/incubator-baremaps/blob/293da521086c402ce78be931a8e90ecb50e58e7e/.github/workflows/publish.yml
> >>
> >>
> >>
> >> --
> >> Arnout Engelen
> >> ASF Security Response
> >> Apache Pekko PPMC member
> >> ASF Member
> >> NixOS Committer
> >> Independent Open Source consultant
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@baremaps.apache.org
> >> For additional commands, e-mail: dev-h...@baremaps.apache.org
> >>
> >
>
>

-- 
Arnout Engelen
ASF Security Response
Apache Pekko PPMC member
ASF Member
NixOS Committer
Independent Open Source consultant

Reply via email to