Skip to content

Latest commit

 

History

History
128 lines (87 loc) · 3.12 KB

making_a_new_release.md

File metadata and controls

128 lines (87 loc) · 3.12 KB

Making a new release of this action (requires commit access)

If you have commit access to this repo, you can make a new release.

Here are the instructions.

Step 1: Clone a fresh copy of the repo

We intentionally work in a brand-new copy of the repo.

git clone git@github.com:julia-actions/setup-julia.git
cd setup-julia
git checkout master
git submodule init
git submodule update

Step 2: Make sure you have the right version of NodeJS

If you use asdf, this is as simple as:

asdf plugin add nodejs
asdf install

If you don't use asdf, then you need to:

  1. Open the ./tool-versions file in the root of the repo.
  2. Make note of the NodeJS version listed in the .tool-versions file.
  3. Install that same version of NodeJS on your machine.
  4. Make sure that you are currently using that version of NodeJS (i.e. it is at the front of your PATH).

Step 3: Edit the version field in package.json

vim package.json

# Edit the `version` number (should be line 2)
# Save your changes in Vim. Then exit Vim.

# For the remaining of this guide, let MAJOR.MINOR.PATCH refer
# to the new version number that you set.

git add package.json

# No need to commit yet.
# The release script will run `git commit`.

Step 4: Remove the dist/ line from the .gitignore file

vim .gitignore
# Delete the line that says `dist/` (it should be line 3)
# Save your changes in Vim. Then exit Vim.

git add .gitignore

# No need to commit yet.
# The release script will run `git commit`.

Step 5: Make sure you have the necessary dependencies

The build-release.sh script requires the following dependencies:

  1. Bash
  2. curl
  3. git
  4. jq
  5. sed

Step 6: Run the build-release.sh script

ls -l bin/build-release.sh
chmod +x bin/build-release.sh
ls -l bin/build-release.sh

./bin/build-release.sh julia-actions/setup-julia

Wait a minute or two. The script will build everything and will create a new release branch named releases/vMAJOR.MINOR.PATCH.

Step 7: Push ONLY the releases/vMAJOR.MINOR.PATCH branch

Only push the releases/ branch. Do NOT push any tags yet.

git push origin releases/vMAJOR.MINOR.PATCH

Now you need to go to https://github.com/julia-actions/setup-julia/tree/releases/vMAJOR.MINOR.PATCH and wait for CI to finish running.

Do NOT proceed to the next step until CI is all green on the releases/vMAJOR.MINOR.PATCH branch.

Step 8: Push the tags (only after CI is all green)

Once CI is all green on the releases/vMAJOR.MINOR.PATCH branch, you can push the tags.

You need to force-push.

git push --tags --force

Step 9: Use the GitHub web UI to create a new GitHub Release

Go to https://github.com/julia-actions/setup-julia/releases and create a new release for the now-existant vMAJOR.MINOR.PATCH tag using the GitHub web interface.

Step 10: Clean up your local repo

git submodule deinit --force .
git submodule update --init
git fetch --all --prune
git checkout master
git reset --hard origin/master

Step 11: Delete your local repo

cd ..
ls setup-julia
rm -rf setup-julia