Skip to content

Workflow file for this run

name: Create Module Files For GitHub Release
on:
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout Repository
uses: actions/checkout@v3
# Substitute the Manifest and Download URLs in the module.json
- name: Extract Version From Tag
id: get_version
uses: battila7/get-version-action@v2
- name: Modify Module Manifest With Release-Specific Values
id: sub_manifest_link_version
uses: microsoft/variable-substitution@v1
with:
files: 'src/module.json'
env:
version: ${{steps.get_version.outputs.version-without-v}}
url: https://github.com/${{github.repository}}
manifest: https://github.com/${{github.repository}}/releases/latest/download/module.json
download: https://github.com/${{github.repository}}/releases/download/${{github.event.release.tag_name}}/module.zip
# Install packages.
- run: npm install
# Build distribution.
- run: npm run build
- run: mkdir package
- run: mv -v ./dist/* ./package/
# Create a zip file with all files required by the module to add to the release
#- run: zip -r ./module.zip module.json LICENSE module.js module.js.map style.css templates/ languages/ packs/ assets/
# - run: zip -r ./package/module.zip ./package/*
# && ensures that zip only runs if the directory was correctly changed,
# and the parentheses run everything in a subshell, so the current directory
# is restored at the end. Using OLDPWD avoids having to calculate the relative path to package.zip.
# https://unix.stackexchange.com/questions/385405/zip-all-files-and-subfolder-in-directory-without-parent-directory
- run: (cd package && zip -r "$OLDPWD/module.zip" .)
- name: Update Release with Files
id: create_version_release
uses: ncipollo/release-action@v1
with:
allowUpdates: true # Set this to false if you want to prevent updating existing releases
name: ${{ github.event.release.name }}
draft: ${{ github.event.release.unpublished }}
prerelease: ${{ github.event.release.prerelease }}
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: './src/module.json, ./module.zip'
tag: ${{ github.event.release.tag_name }}
body: ${{ github.event.release.body }}