Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6b2deb0392 | |||
| a28ca6cc6d | |||
| 5c995983f0 |
@@ -0,0 +1,139 @@
|
|||||||
|
# GitHub Actions workflow for creating a new FoundryVTT module release.
|
||||||
|
#
|
||||||
|
# Useful References:
|
||||||
|
# - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
|
||||||
|
# - https://docs.github.com/en/actions/learn-github-actions/contexts
|
||||||
|
# - https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
#
|
||||||
|
# Troubleshooting Checklist:
|
||||||
|
# - Is the module's manifest file valid JSON?
|
||||||
|
# You can test your manifest file using https://jsonlint.com/.
|
||||||
|
#
|
||||||
|
# - Does the module's manifest have all the required keys?
|
||||||
|
# See https://foundryvtt.com/article/module-development/#manifest for more
|
||||||
|
# information.
|
||||||
|
#
|
||||||
|
# - Are all the proper files and directories being included in the release's
|
||||||
|
# module archive ("module.zip")?
|
||||||
|
# Check that the correct files are being passed to the `zip` command run
|
||||||
|
# in the "Create Module Archive" step below.
|
||||||
|
#
|
||||||
|
# - Is the release tag the proper format?
|
||||||
|
# See the comments for the "Extract Version From Tag" step below.
|
||||||
|
#
|
||||||
|
# - Is a GitHub release being published?
|
||||||
|
# This workflow will only run when a release is published, not when a
|
||||||
|
# release is updated. Furthermore, note that while a GitHub release will
|
||||||
|
# (by default) create a repository tag, a repository tag will not create
|
||||||
|
# or publish a GitHub release.
|
||||||
|
#
|
||||||
|
# - Has the module's entry on FoundryVTT's module administration site
|
||||||
|
# (https://foundryvtt.com/admin) been updated?
|
||||||
|
#
|
||||||
|
name: Create Module Files For GitHub Release
|
||||||
|
|
||||||
|
|
||||||
|
env:
|
||||||
|
# The URL used for the module's "Project URL" link on FoundryVTT's website.
|
||||||
|
project_url: "https://github.com/${{github.repository}}"
|
||||||
|
|
||||||
|
# A URL that will always point to the latest manifest.
|
||||||
|
# FoundryVTT uses this URL to check whether the current module version that
|
||||||
|
# is installed is the latest version. This URL should NOT change,
|
||||||
|
# otherwise FoundryVTT won't be able to perform this check.
|
||||||
|
latest_manifest_url: "https://github.com/${{github.repository}}/releases/latest/download/module.json"
|
||||||
|
|
||||||
|
# The URL to the module archive associated with the module release being
|
||||||
|
# processed by this workflow.
|
||||||
|
release_module_url: "https://github.com/${{github.repository}}/releases/download/${{github.event.release.tag_name}}/module.zip"
|
||||||
|
|
||||||
|
|
||||||
|
on:
|
||||||
|
# Only run this workflow when a release is published.
|
||||||
|
# To modify this workflow when other events occur, see:
|
||||||
|
# - https://docs.github.com/en/actions/using-workflows/triggering-a-workflow
|
||||||
|
# - https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows
|
||||||
|
# - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on
|
||||||
|
#
|
||||||
|
# Note that some steps may depend on context variables that are only
|
||||||
|
# available for release events, so if you add other events, you may need to
|
||||||
|
# alter other parts of this workflow.
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
|
||||||
|
# Extract version embedded in the tag.
|
||||||
|
# This step expects the tag to be one of the following formats:
|
||||||
|
# - "v<major>.<minor>.<patch>" (e.g., "v1.2.3")
|
||||||
|
# - "<major>.<minor>.<patch>" (e.g., "1.2.3")
|
||||||
|
#
|
||||||
|
# The version will be used by later steps to fill in the value for the
|
||||||
|
# "version" key required for a valid module manifest.
|
||||||
|
- name: Extract Version From Tag
|
||||||
|
id: get_version
|
||||||
|
uses: battila7/get-version-action@v2
|
||||||
|
|
||||||
|
|
||||||
|
# Modify "module.json" with values specific to the release.
|
||||||
|
# Since the values for the "version" and "url" keys aren't known ahead of
|
||||||
|
# time, the manifest file in the repository is updated with these values.
|
||||||
|
#
|
||||||
|
# While this does modify the manifest file in-place, the changes are not
|
||||||
|
# commited to the repository, and only exist in the action's filesystem.
|
||||||
|
- name: Modify Module Manifest With Release-Specific Values
|
||||||
|
id: sub_manifest_link_version
|
||||||
|
uses: cschleiden/replace-tokens@v1
|
||||||
|
with:
|
||||||
|
files: 'module.json'
|
||||||
|
env:
|
||||||
|
VERSION: ${{steps.get_version.outputs.version-without-v}}
|
||||||
|
URL: ${{ env.project_url }}
|
||||||
|
MANIFEST: ${{ env.latest_manifest_url }}
|
||||||
|
DOWNLOAD: ${{ env.release_module_url }}
|
||||||
|
|
||||||
|
|
||||||
|
# Create a "module.zip" archive containing all the module's required files.
|
||||||
|
# If you have other directories or files that will need to be added to
|
||||||
|
# your packaged module, add them here.
|
||||||
|
- name: Create Module Archive
|
||||||
|
run: |
|
||||||
|
# Note that `zip` will only emit warnings when a file or directory
|
||||||
|
# doesn't exist, it will not fail.
|
||||||
|
zip \
|
||||||
|
`# Options` \
|
||||||
|
--recurse-paths \
|
||||||
|
`# The name of the output file` \
|
||||||
|
./module.zip \
|
||||||
|
`# The files that will be included.` \
|
||||||
|
module.json \
|
||||||
|
CHANGELOG.md \
|
||||||
|
README.md \
|
||||||
|
src/
|
||||||
|
# Don't forget to add a backslash at the end of the line for any
|
||||||
|
# additional files or directories!
|
||||||
|
|
||||||
|
|
||||||
|
# Update the GitHub release with the manifest and module archive files.
|
||||||
|
- name: Update Release With Files
|
||||||
|
id: create_version_release
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
allowUpdates: true
|
||||||
|
name: ${{ github.event.release.name }}
|
||||||
|
draft: ${{ github.event.release.unpublished }}
|
||||||
|
prerelease: ${{ github.event.release.prerelease }}
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
artifacts: './module.json, ./module.zip'
|
||||||
|
tag: ${{ github.event.release.tag_name }}
|
||||||
|
body: ${{ github.event.release.body }}
|
||||||
+15
-7
@@ -2,13 +2,21 @@
|
|||||||
"id": "socketlib",
|
"id": "socketlib",
|
||||||
"title": "socketlib",
|
"title": "socketlib",
|
||||||
"description": "A library for easier handling of foundry sockets",
|
"description": "A library for easier handling of foundry sockets",
|
||||||
"version": "1.1.0",
|
"version": "#{VERSION}#",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "11",
|
"minimum": "11",
|
||||||
"verified": "12"
|
"verified": "12"
|
||||||
},
|
},
|
||||||
"library": true,
|
"library": true,
|
||||||
"authors": [
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Farling",
|
||||||
|
"url": "https://github.com/farling42",
|
||||||
|
"email": "foundryvtt@amusingtime.uk",
|
||||||
|
"discord": "farling",
|
||||||
|
"ko-fi": "farling",
|
||||||
|
"patreon": "amusingtime"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Manuel Vögele",
|
"name": "Manuel Vögele",
|
||||||
"email": "develop@manuel-voegele.de",
|
"email": "develop@manuel-voegele.de",
|
||||||
@@ -19,10 +27,10 @@
|
|||||||
"esmodules": [
|
"esmodules": [
|
||||||
"src/socketlib.js"
|
"src/socketlib.js"
|
||||||
],
|
],
|
||||||
"url": "https://github.com/manuelVo/foundryvtt-socketlib",
|
"url": "#{URL}#",
|
||||||
"download": "https://github.com/manuelVo/foundryvtt-socketlib/archive/v1.1.0.zip",
|
"download": "#{DOWNLOAD}#",
|
||||||
"manifest": "https://raw.githubusercontent.com/manuelVo/foundryvtt-socketlib/master/module.json",
|
"manifest": "#{MANIFEST}#",
|
||||||
"readme": "https://github.com/manuelVo/foundryvtt-socketlib/blob/master/README.md",
|
"readme": "https://github.com/farling42/foundryvtt-socketlib/blob/master/README.md",
|
||||||
"changelog": "https://github.com/manuelVo/foundryvtt-socketlib/blob/master/CHANGELOG.md",
|
"changelog": "https://github.com/farling42/foundryvtt-socketlib/blob/master/CHANGELOG.md",
|
||||||
"bugs": "https://github.com/manuelVo/foundryvtt-socketlib/issues"
|
"bugs": "https://github.com/farling42/foundryvtt-socketlib/issues"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user