diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..0494331 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,87 @@ +name: ci +on: [ push, pull_request ] + +jobs: + ci: + runs-on: ubuntu-latest + + permissions: + contents: write + pull-requests: write + statuses: write + + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20 + + - id: version + name: version + run: | + major=${{contains(github.event.head_commit.message, 'major')}} + minor=${{contains(github.event.head_commit.message, 'minor')}} + + echo "major: " $major + echo "minor: " $minor + + if ${{ github.ref_name == 'mains' }}; then + echo "on main" + if [[ $major == "true" ]]; then + newVersion="major" + elif [[ $minor == "true" ]]; then + newVersion="minor" + else + newVersion="patch" + fi + else + if [[ $major == "true" ]]; then + newVersion="premajor" + elif [[ $minor == "true" ]]; then + newVersion="preminor" + else + newVersion="prepatch" + fi + fi + + echo "using: " $newVersion + + npm version "$newVersion" --git-tag-version=false + + echo "VERSION=$(npm --silent run version)" >> ${GITHUB_OUTPUT} + + - name: npm ci + run: npm ci + - name: build + run: npm run build + + - name: zip release + if: github.ref_name == 'main' + working-directory: dist + run: zip -r foundryvtt-dice-tower-${{ steps.version.outputs.VERSION }}.zip . + +# - name: create tag +# if: github.ref_name == 'main' +# run: | +# git config user.email "ci@git.arindy.de" +# git config user.name "gitea" +# git add package.json +# git add package-lock.json +# git commit -m "[no ci] ${{ steps.version.outputs.VERSION }}" +# git tag ${{ steps.version.outputs.VERSION }} -m "release ${{ steps.version.outputs.VERSION }}" +# git push origin main +# git push origin ${{ steps.version.outputs.VERSION }} +# +# - name: release +# if: github.ref_name == 'main' +# uses: akkuman/gitea-release-action@v1 +# env: +# NODE_OPTIONS: '--experimental-fetch' # if nodejs < 18 +# with: +# files: |- +# dist/foundryvtt-dice-tower-${{ steps.version.outputs.VERSION }}.zip +# dist/module.json +# tag_name: ${{ steps.version.outputs.VERSION }} +# name: Release ${{ steps.version.outputs.VERSION }} diff --git a/package-lock.json b/package-lock.json index fdfcb2a..7ca9f4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { - "name": "dice-tower-foundry", - "version": "1.0.0", + "name": "foundryvtt-dice-tower", + "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "dice-tower-foundry", - "version": "1.0.0", + "name": "foundryvtt-dice-tower", + "version": "0.0.1", "license": "GPL-3.0-only", "devDependencies": { "@3d-dice/dice-box-threejs": "^0.0.12", diff --git a/package.json b/package.json index b28df49..c2c4868 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "foundryvtt-dice-tower", - "version": "1.0.0", + "version": "0.0.1", "description": "Roll your dice in a fancy overlay", "license": "GPL-3.0-only", "scripts": { @@ -8,6 +8,7 @@ "build": "npm run clean && tsc && vite build", "watch": "tsc && vite build --watch", "copy": "sudo rsync -avP dist/ .foundry/data/Data/modules/dice-tower/", + "version": "echo $npm_package_version", "buildCopy": "npm run build && npm run copy" }, "devDependencies": { diff --git a/vite.config.ts b/vite.config.ts index 2ddc3f9..6143d6b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -3,10 +3,6 @@ import copy from "rollup-plugin-copy"; import scss from "rollup-plugin-scss"; import {defineConfig, Plugin} from "vite"; -const moduleVersion = process.env.MODULE_VERSION; -const githubProject = process.env.GH_PROJECT; -const githubTag = process.env.GH_TAG; - export default defineConfig({ build: { sourcemap: true, @@ -46,7 +42,7 @@ function updateModuleManifestPlugin(): Plugin { const packageContents = JSON.parse( await fsPromises.readFile("./package.json", "utf-8") ) as Record; - const version = moduleVersion || (packageContents.version as string); + const version = (packageContents.version as string); const description = (packageContents.description as string); const manifestContents: string = await fsPromises.readFile( "src/module.json", @@ -58,15 +54,9 @@ function updateModuleManifestPlugin(): Plugin { >; manifestJson["version"] = version; manifestJson["description"] = description; - if (githubProject) { - const baseUrl = `https://github.com/${githubProject}/releases`; - manifestJson["manifest"] = `${baseUrl}/latest/download/module.json`; - if (githubTag) { - manifestJson[ - "download" - ] = `${baseUrl}/download/${githubTag}/module.zip`; - } - } + const baseUrl = `https://git.arindy.de/arindy/foundryvtt-dice-tower/releases/download`; + manifestJson["manifest"] = `${baseUrl}/latest/module.json`; + manifestJson["download"] = `${baseUrl}/${version}/foundryvtt-dice-tower-${version}.zip`; await fsPromises.writeFile( "dist/module.json", JSON.stringify(manifestJson, null, 4)