From a28ca6cc6d32e9a9ecf76720bf2c78c41b57abe4 Mon Sep 17 00:00:00 2001 From: farling42 Date: Thu, 20 Mar 2025 15:55:13 +0000 Subject: [PATCH] Add new maintainer + add github action file --- .github/workflows/main.yml | 139 +++++++++++++++++++++++++++++++++++++ module.json | 10 ++- 2 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..2551544 --- /dev/null +++ b/.github/workflows/main.yml @@ -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.." (e.g., "v1.2.3") + # - ".." (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 }} diff --git a/module.json b/module.json index a3c15c6..4eeb8a8 100644 --- a/module.json +++ b/module.json @@ -9,7 +9,15 @@ }, "library": true, "authors": [ - { + { + "name": "Farling", + "url": "https://github.com/farling42", + "email": "foundryvtt@amusingtime.uk", + "discord": "farling", + "ko-fi": "farling", + "patreon": "amusingtime" + }, + { "name": "Manuel Vögele", "email": "develop@manuel-voegele.de", "discord": "Stäbchenfisch#5107",