Skip to content
This repository has been archived by the owner on Jun 14, 2023. It is now read-only.

Update example release.yml in GitHub Actions documentation #59

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 41 additions & 76 deletions docs/publishing/release-your-plugin-with-github-actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,81 +21,47 @@ The GitHub Action workflow was originally created and shared by [argentum](https

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: "14.x"

- name: Build
id: build
run: |
npm install
npm run build
mkdir ${{ env.PLUGIN_NAME }}
cp main.js manifest.json styles.css ${{ env.PLUGIN_NAME }}
zip -r ${{ env.PLUGIN_NAME }}.zip ${{ env.PLUGIN_NAME }}
ls
echo "::set-output name=tag_name::$(git tag --sort version:refname | tail -n 1)"

- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ github.ref }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
draft: false
prerelease: false

- name: Upload zip file
id: upload-zip
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./${{ env.PLUGIN_NAME }}.zip
asset_name: ${{ env.PLUGIN_NAME }}-${{ steps.build.outputs.tag_name }}.zip
asset_content_type: application/zip

- name: Upload main.js
id: upload-main
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./main.js
asset_name: main.js
asset_content_type: text/javascript

- name: Upload manifest.json
id: upload-manifest
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./manifest.json
asset_name: manifest.json
asset_content_type: application/json

- name: Upload styles.css
id: upload-css
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./styles.css
asset_name: styles.css
asset_content_type: text/css
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When is this necessary? I haven't seen any issues leaving this out.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're totally right, I don't think this is needed either. Will remove fetch-depth in the next commit.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
fetch-depth: 0 # Otherwise, pushing refs to destination repository fails.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right, but I'll remove this line in response to this conversation.

- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: "18.x" # You might need to adjust this value to your own version.

# Get the version number and put it in an environment file
- name: Get Version
id: version
run: |
echo "tag=$(git describe --tags $(git rev-list --tags --max-count=1))" >> $GITHUB_ENV

# Build the plugin
- name: Build
id: build
run: |
npm install
npm run build

# Package the required files into a zip
- name: Package
run: |
mkdir ${{ github.event.repository.name }}
cp main.js manifest.json styles.css README.md ${{ github.event.repository.name }}
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
cp main.js manifest.json styles.css README.md ${{ github.event.repository.name }}
cp main.js manifest.json styles.css README.md ${{ github.event.repository.name }}

This assumes that the developer uses the plugin id as the repository name. To be honest, I'm not sure whether Obsidian cares about the zip file?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think Obsidian cares about the zip file, either. I do think it's convenient to have it if someone wants to download the compiled artifacts and not the .zip of the source tree that GitHub gives by default.

I like the way that advanced-tables is doing it -- the plugin name is set in the env block toward the top.

I will push a commit in the near future which fixes this and several other things mentioned above.

zip -r ${{ github.event.repository.name }}-${{ env.tag }}.zip ${{ github.event.repository.name }}

- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
${{ github.event.repository.name }}-${{ env.tag }}.zip
main.js
main.css
manifest.json
styles.css

```

1. In your terminal, commit the workflow.
Expand Down Expand Up @@ -162,7 +128,6 @@ To enable standard-version for your plugin:

- `"t": ""` configures standard-version to remove the default `v` prefix to adhere to Obsidian's guidelines.


To make a release:

1. Commit your changes according to Conventional Commits.
Expand Down