mirror of
https://github.com/julia-actions/setup-julia.git
synced 2026-02-12 19:16:54 +08:00
* Make the devdocs more complete and self-contained * Rename devdocs/misc-notes-from-contributors.md to devdocs/misc/misc_notes_for_committers.md * Document the dependencies of the build script * No need to manually make multiple commits --------- Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
129 lines
3.1 KiB
Markdown
129 lines
3.1 KiB
Markdown
# 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.
|
|
|
|
```bash
|
|
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`](https://asdf-vm.com/), this is as simple as:
|
|
|
|
```bash
|
|
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`
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
cd ..
|
|
ls setup-julia
|
|
rm -rf setup-julia
|
|
```
|