reusable workflow usage #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Reusable Build and Package .dapp | ||
on: | ||
workflow_call: | ||
inputs: | ||
node_version: | ||
description: 'Node.js version to use' | ||
required: true | ||
default: '16' | ||
build_command: | ||
description: 'Command to build the project' | ||
required: true | ||
default: 'yarn build' | ||
manifest_name: | ||
description: 'Name of the .dapp application' | ||
required: true | ||
manifest_description: | ||
description: 'Description of the .dapp application' | ||
required: true | ||
manifest_icon: | ||
description: 'Path to the icon file' | ||
required: true | ||
default: 'localapp/app/logo.svg' | ||
manifest_url: | ||
description: 'URL for the application' | ||
required: true | ||
default: 'localapp/app/index.html' | ||
manifest_version_prefix: | ||
description: 'Version prefix of the application' | ||
required: true | ||
manifest_api_version: | ||
description: 'API version of the application' | ||
required: true | ||
default: '7.0' | ||
manifest_min_api_version: | ||
description: 'Minimum API version required' | ||
required: true | ||
default: '7.0' | ||
manifest_guid: | ||
description: 'GUID for the .dapp manifest' | ||
required: true | ||
dapp_name: | ||
description: 'Name of the dapp' | ||
required: true | ||
secrets: | ||
GITHUB_TOKEN: | ||
required: true | ||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v2 | ||
- name: Set up Git | ||
run: git fetch --prune --unshallow | ||
- name: Get commit count | ||
id: commit_count | ||
run: | | ||
COMMIT_COUNT=$(git rev-list --count HEAD) | ||
echo "COMMIT_COUNT=${COMMIT_COUNT}" >> $GITHUB_ENV | ||
- name: Generate version | ||
id: version | ||
run: | | ||
VERSION="${{input.manifest_version_prefix}}.${{ env.COMMIT_COUNT }}" | ||
echo "VERSION=${VERSION}" >> $GITHUB_ENV | ||
- name: Set up Node.js environment | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: ${{ inputs.node_version }} | ||
- name: Install dependencies | ||
run: yarn install | ||
- name: Build the project | ||
run: ${{ inputs.build_command }} | ||
- name: Create folder structure | ||
run: mkdir -p dao-voting/app | ||
- name: Copy build files | ||
run: cp -r html/* dao-voting/app/ | ||
- name: Create manifest.json | ||
run: | | ||
echo '{ | ||
"name": "${{ inputs.manifest_name }}", | ||
"description": "${{ inputs.manifest_description }}", | ||
"icon": "${{ inputs.manifest_icon }}", | ||
"url": "${{ inputs.manifest_url }}", | ||
"version": "${VERSION}", | ||
"api_version": "${{ inputs.manifest_api_version }}", | ||
"min_api_version": "${{ inputs.manifest_min_api_version }}", | ||
"guid": "${{ inputs.manifest_guid }}" | ||
}' > ${{ inputs.dapp-name }}/manifest.json | ||
- name: Package into .dapp file | ||
run: | | ||
cd ${{ inputs.dapp_name }}.dapp | ||
zip -r ../${{ inputs.dapp_name }}.dapp ./* | ||
cd .. | ||
- name: Upload .dapp file | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ inputs.dapp_name }}.dapp | ||
path: ${{ inputs.dapp_name }}.dapp |