From 0443871583fbb0bf70ca164550cd5c8bd5931289 Mon Sep 17 00:00:00 2001 From: dutchie031 Date: Thu, 10 Sep 2026 18:17:39 +0200 Subject: [PATCH] Added test for publish bundle pipeline --- .../workflows/publish-install-lua-addon.yml | 42 +++++++++++++++++++ .../workflows/publish-vs-code-extensions.yml | 7 +++- github-actions/install-lua-addon/action.yml | 6 --- github-actions/install-lua-addon/esbuild.js | 27 ++++++++++++ github-actions/install-lua-addon/package.json | 2 +- 5 files changed, 75 insertions(+), 9 deletions(-) diff --git a/.github/workflows/publish-install-lua-addon.yml b/.github/workflows/publish-install-lua-addon.yml index f9175af..d6425f8 100644 --- a/.github/workflows/publish-install-lua-addon.yml +++ b/.github/workflows/publish-install-lua-addon.yml @@ -11,6 +11,48 @@ permissions: contents: write jobs: + ## Verify that when the action has been run it actually has the lua addons installed + test_action: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + cache-dependency-path: github-actions/install-lua-addon/package-lock.json + + - name: Run Action Locally + uses: ./github-actions/install-lua-addon + with: + destination-path: './some/test/lua-addons' + + - name: Verify lua addons were installed + run: | + echo "Listing contents of the Lua addons directory" + ls -la ./some/test/lua-addons + + echo "Checking if dcs-types addon was installed" + if [ -d "./some/test/lua-addons/dcs-types" ]; then + echo "✓ dcs-types directory found" + else + echo "✗ dcs-types directory not found" + exit 1 + fi + + echo "Checking if config.json exists in dcs-types" + if [ -f "./some/test/lua-addons/dcs-types/config.json" ]; then + echo "✓ config.json found" + else + echo "✗ config.json not found" + exit 1 + fi + + echo "All checks passed!" + publish_action: uses: ./.github/workflows/_publish-action-release.yml with: diff --git a/.github/workflows/publish-vs-code-extensions.yml b/.github/workflows/publish-vs-code-extensions.yml index 3ba4f7a..b4d6107 100644 --- a/.github/workflows/publish-vs-code-extensions.yml +++ b/.github/workflows/publish-vs-code-extensions.yml @@ -34,20 +34,23 @@ jobs: - name: Exit if tag exists if: steps.tag_check.outputs.tag_exists == 'true' run: | - echo "Tag already exists, exiting." - exit 1 + echo "::warning::Tag already exists, exiting." + exit 0 - name: Setup Node.js uses: actions/setup-node@v4 + if: steps.tag_check.outputs.tag_exists == 'false' with: node-version: '20' - name: Install dependencies + if: steps.tag_check.outputs.tag_exists == 'false' run: | cd dutchies-dcs-scripting-tools npm install - name: Build extension + if: steps.tag_check.outputs.tag_exists == 'false' run: | cd dutchies-dcs-scripting-tools npm run compile diff --git a/github-actions/install-lua-addon/action.yml b/github-actions/install-lua-addon/action.yml index e4e5d13..a987dda 100644 --- a/github-actions/install-lua-addon/action.yml +++ b/github-actions/install-lua-addon/action.yml @@ -9,12 +9,6 @@ inputs: runs: using: 'composite' steps: - - name: Copy lua-addons - run: | - cp -r ../dutchies-dcs-scripting-tools/lua-addons ./lua-addons - shell: bash - working-directory: ${{ github.action_path }} - - name: Build action run: | npm ci diff --git a/github-actions/install-lua-addon/esbuild.js b/github-actions/install-lua-addon/esbuild.js index 86d2968..327bc88 100644 --- a/github-actions/install-lua-addon/esbuild.js +++ b/github-actions/install-lua-addon/esbuild.js @@ -1,9 +1,36 @@ const esbuild = require("esbuild"); +const fs = require("fs"); +const path = require("path"); const production = process.argv.includes('--production'); const watch = process.argv.includes('--watch'); +async function copyDirectory(src, dest) { + await fs.promises.mkdir(dest, { recursive: true }); + const entries = await fs.promises.readdir(src, { withFileTypes: true }); + + for (const entry of entries) { + const srcPath = path.join(src, entry.name); + const destPath = path.join(dest, entry.name); + + if (entry.isDirectory()) { + await copyDirectory(srcPath, destPath); + } else { + await fs.promises.copyFile(srcPath, destPath); + } + } +} + async function main() { + // Copy lua-addons to dist directory + const luaAddonsSource = path.join(__dirname, '../../dutchies-dcs-scripting-tools/lua-addons'); + const luaAddonsDest = path.join(__dirname, 'dist/lua-addons'); + + if (fs.existsSync(luaAddonsSource)) { + await copyDirectory(luaAddonsSource, luaAddonsDest); + console.log('Lua addons copied to dist/'); + } + const ctx = await esbuild.context({ entryPoints: [ 'src/index.ts' diff --git a/github-actions/install-lua-addon/package.json b/github-actions/install-lua-addon/package.json index 9f2abfc..7884d70 100644 --- a/github-actions/install-lua-addon/package.json +++ b/github-actions/install-lua-addon/package.json @@ -1,6 +1,6 @@ { "name": "gh-lua-addon-installer", - "version": "1.0.0", + "version": "1.0.1", "main": "dist/index.js", "scripts": { "build": "node esbuild.js",