Skip to content

modifed action

modifed action #40

name: Run create-plugma on multiple OS
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch: # Allows manual triggering
jobs:
test-cli:
strategy:
matrix:
os: [ubuntu-latest, windows-latest] # Test on Ubuntu and Windows
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install create-plugma locally
run: |
npm install create-plugma@latest
- name: Write simulate-cli.js
run: |
printf "const { spawn } = require('child_process');\n" > simulate-cli.js
printf "(async () => {\n" >> simulate-cli.js
printf " try {\n" >> simulate-cli.js
printf " const cli = spawn('npx', ['create-plugma@latest'], { stdio: ['pipe', 'pipe', 'pipe'], shell: true });\n" >> simulate-cli.js
printf " cli.stdout.on('data', (data) => { console.log(\`STDOUT: \${data.toString()}\`); });\n" >> simulate-cli.js
printf " cli.stderr.on('data', (data) => { console.error(\`STDERR: \${data.toString()}\`); });\n" >> simulate-cli.js
printf " const responses = [\"\\n\", \"\\n\", \"TestProject\\n\", \"\\n\"];\n" >> simulate-cli.js
printf " let index = 0;\n" >> simulate-cli.js
printf " cli.stdout.on('data', (data) => {\n" >> simulate-cli.js
printf " const output = data.toString();\n" >> simulate-cli.js
printf " console.log(\`Received: \${output}\`);\n" >> simulate-cli.js
printf " if (index < responses.length) { cli.stdin.write(responses[index]); index++; }\n" >> simulate-cli.js
printf " });\n" >> simulate-cli.js
printf " cli.on('close', (code) => {\n" >> simulate-cli.js
printf " console.log(\`CLI process exited with code: \${code}\`);\n" >> simulate-cli.js
printf " if (code !== 0) { process.exit(1); }\n" >> simulate-cli.js
printf " });\n" >> simulate-cli.js
printf " } catch (error) {\n" >> simulate-cli.js
printf " console.error('Error running create-plugma CLI:', error);\n" >> simulate-cli.js
printf " process.exit(1);\n" >> simulate-cli.js
printf " }\n" >> simulate-cli.js
printf "})();\n" >> simulate-cli.js
- name: Run simulate-cli.js
run: node simulate-cli.js
- name: Verify TestProject directory
run: |
if [ -d "TestProject" ]; then
echo "TestProject directory exists.";
else
echo "TestProject directory not found.";
exit 1;
fi
- name: Display package.json contents
run: |
echo "Contents of package.json:"
cat package.json || echo "Failed to read package.json"
working-directory: TestProject
- name: Install project dependencies
run: |
npm install
working-directory: TestProject
- name: Build the project
run: |
npm run build
working-directory: TestProject
- name: Verify Build
run: |
test -f dist/main.js && echo "Build succeeded" || (echo "Build failed" && exit 1)
working-directory: TestProject