llnl / llnl/axom

Automate uploading Release assets

Open
#557 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

CI good first issue low priority Release Reviewed Software process
Dominant language
C++
Stars
196
Forks
34
Avg merge
4d 1h
Merged PRs (30d)
11

Description

As part of the release process, ``scripts/make_release_tarball.sh --with-data`` is run to create compressed tar files of the release with the submodules included. I ran the script at LC to create the files. The Yubikey is required to authenticate to upload the files. However, a browser running at LC does not have access to the Yubikey. Only a browser running on the local machine (Windows in my case). Since Windows is very different than Linux I haven't spent much effort to understand how to use it. Mostly just run VNC to access LC. I didn't see how to run scp to move the files to the laptop. Instead I found how to upload the files from LC via the github API. In the course of looking up how to do this I discovered that github actions have features to perform actions on a release. This could be used to run ``make_release_tarball.sh``, maybe.

My main concern is that we don't release very often so the effort to automate this process may be wasted if github changes the process between releases. But if the process was more automated we may release more often. Or it may be easier to document how to move files from LC to a Windows laptop (just more googling).

From LC, the essential command is:

curl \
-H "Authorization: token $GITHUB_TOKEN" \
-H "Content-Type: $(file -b --mime-type $FILE)" \
--data-binary @$FILE \
"https://uploads.github.com/repos/LLNL/axom/releases/42931013/assets?name=$(basename $FILE)"

The tricks are getting the release number (42931013 in this case) but that can be automated. Then setting up GITHUB_TOKEN to authenticate to the github API. The details are at https://docs.github.com/en/rest/reference/repos. I found a few scripts that claim to help automate the process that could be used instead of github actions.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading scripts/make_release_tarball.sh and tracing how it creates the release tarballs with submodules. Then review the GitHub release API details in the linked documentation, focusing on release identification, asset uploads, and GITHUB_TOKEN authentication. Done means a documented or automated process can create the assets and upload them to the intended release.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, shell
Domain
ci-cd, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.