name: Test Action on: push: branches: [ main ] pull_request: branches: [ main ] jobs: test-node-npm: name: Test Node.js with npm runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Test action with Node.js (npm) uses: ./ with: install-node: 'true' node-version: '20' package-manager: 'npm' server-path: './test-server' - name: Verify installation run: | test -d ./test-server || exit 1 test -d ./test-server/node_modules || exit 1 chmod +x ./scripts/health-check.sh ./scripts/health-check.sh ./test-server true false false echo "✓ Node.js (npm) installation successful" - name: Run server tests run: | cd ./test-server npm test test-node-yarn: name: Test Node.js with yarn runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Enable Corepack run: corepack enable - name: Test action with Node.js (yarn) uses: ./ with: install-node: 'true' node-version: '20' package-manager: 'yarn' server-path: './test-server' - name: Verify installation run: | test -d ./test-server || exit 1 test -d ./test-server/node_modules || exit 1 chmod +x ./scripts/health-check.sh ./scripts/health-check.sh ./test-server true false false echo "✓ Node.js (yarn) installation successful" - name: Run server tests run: | cd ./test-server yarn test test-node-pnpm: name: Test Node.js with pnpm runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Test action with Node.js (pnpm) uses: ./ with: install-node: 'true' node-version: '20' package-manager: 'pnpm' server-path: './test-server' - name: Verify installation run: | test -d ./test-server || exit 1 test -d ./test-server/node_modules || exit 1 chmod +x ./scripts/health-check.sh ./scripts/health-check.sh ./test-server true false false echo "✓ Node.js (pnpm) installation successful" - name: Run server tests run: | cd ./test-server pnpm test test-php: name: Test PHP runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Test action with PHP uses: ./ with: install-php: 'true' php-version: '8.2' server-path: './test-server' - name: Verify installation run: | test -d ./test-server || exit 1 php --version composer --version chmod +x ./scripts/health-check.sh ./scripts/health-check.sh ./test-server false true false echo "✓ PHP installation successful" - name: Run server tests run: | cd ./test-server ./vendor/bin/phpunit test-nginx: name: Test nginx runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Test action with nginx uses: ./ with: install-nginx: 'true' server-path: './test-server' - name: Verify installation run: | test -d ./test-server || exit 1 nginx -v sudo systemctl status nginx --no-pager chmod +x ./scripts/health-check.sh ./scripts/health-check.sh ./test-server false false true echo "✓ nginx installation successful" test-all-components: name: Test All Components runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Test action with all components uses: ./ with: install-node: 'true' install-php: 'true' install-nginx: 'true' node-version: '20' php-version: '8.2' package-manager: 'npm' server-path: './test-server' - name: Verify installation run: | test -d ./test-server || exit 1 test -d ./test-server/node_modules || exit 1 node --version npm --version php --version composer --version nginx -v chmod +x ./scripts/health-check.sh ./scripts/health-check.sh ./test-server true true true echo "✓ All components installation successful" - name: Run integration tests run: | cd ./test-server npm run test:integration test-custom-paths: name: Test Custom Server Path runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Test action with custom path uses: ./ with: install-node: 'true' server-path: './my-custom-server' - name: Verify installation run: | test -d ./my-custom-server || exit 1 test -d ./my-custom-server/node_modules || exit 1 echo "✓ Custom path installation successful" - name: Run server tests run: | cd ./my-custom-server npm test test-without-dependencies: name: Test Without Dependencies runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Test action without installing dependencies uses: ./ with: install-node: 'true' install-dependencies: 'false' server-path: './test-server' - name: Verify installation run: | test -d ./test-server || exit 1 node --version # node_modules should not exist since we skipped dependency installation if [ -d ./test-server/node_modules ]; then echo "✗ Dependencies were installed when they shouldn't have been" exit 1 fi echo "✓ Installation without dependencies successful" test-build-command: name: Test Build Command runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Test action with build command uses: ./ with: install-node: 'true' server-path: './test-server' build-command: 'echo "Build complete" > build.log' - name: Verify build run: | test -f ./test-server/build.log || exit 1 grep -q "Build complete" ./test-server/build.log || exit 1 echo "✓ Build command executed successfully"