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

Release automation #1

Open
1 of 11 tasks
JanCBrammer opened this issue Dec 12, 2023 · 4 comments
Open
1 of 11 tasks

Release automation #1

JanCBrammer opened this issue Dec 12, 2023 · 4 comments
Labels

Comments

@JanCBrammer
Copy link
Collaborator

JanCBrammer commented Dec 12, 2023

We've started to configure our release automation: https://github.com/IUPAC-InChI/InChI/blob/main/.github/workflows/release.yml.
In short, every time we tag and publish a new release, a GitHub action uploads zip archives according to the convention on https://www.inchi-trust.org/all-downloadable%20versions/.

We could expand this by automatically building / compiling our release artifacts, i.e., the contents of INCHI-1-BIN such as libinchi.so. In order to do that we could write compilation scripts (essentially just calling make like so) which we then run as part of the release automation. By scripting the compilation, we can run it locally as well as during the automation.
@djb-rwth, we'd need to figure out which version of which compiler to run on which OS. That would pretty much be what you documented in the README, right?

Examples:

TODO:

  • remove (and/or .gitignore) all artifacts that are currently distributed as part of the codebase (e.g., all "bin" directories) outside INCHI-1-BIN; keep around (empty) bin directories since they are currently hard-coded into makefiles (0b277e0)
  • remove INCHI-1-BIN; instead distribute artifacts under https://github.com/IUPAC-InChI/InChI/releases (directory structure tbd, but can deviate from status quo)
  • decide if we deprecate winchi-1.exe
  • decide if we deprecate 32 bit artifacts
  • run release workflow only if ci workflow passes for the tagged commit that triggered release
  • run tests (which ones?) on release artifacts
  • decide on how to build release artifacts: which compiler(s) to use on which OS (i.e., "release matrix" of compiler by OS)
  • write scripts for each cell in the release matrix (those can be run locally and on ci)
  • use https://github.com/giallu/InChI/tree/build_matrix as a foundation (thanks @giallu)
  • sign artifacts (thanks @MikeWilliams-UK )
  • feature suggest: extend version information in the compiled executable #61 (thanks @nbehrnd)
@djb-rwth
Copy link
Collaborator

djb-rwth commented Dec 19, 2023 via email

@fbaensch-beilstein
Copy link
Collaborator

We should bring this up for discussion again, as #54 shows. And it would be nice if we could provide artifacts for each "main" OS, see dan2097/jna-inchi#21.

@MikeWilliams-UK
Copy link

Possibly add code signing into the pipeline ?

@nbehrnd
Copy link

nbehrnd commented Sep 26, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants