diff --git a/.github/workflows/npm-gulp.yml b/.github/workflows/npm-gulp.yml new file mode 100644 index 0000000..6d04c0d --- /dev/null +++ b/.github/workflows/npm-gulp.yml @@ -0,0 +1,28 @@ +name: NodeJS with Gulp + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x, 20.x, 22.x] + + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + + - name: Build + run: | + npm install + gulp diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..8fd9594 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,26 @@ +import gulp from 'gulp'; +import babel from 'gulp-babel'; +import { deleteAsync } from 'del'; + +// Clean the dist directory +gulp.task('clean', () => { + return deleteAsync(['dist']); +}); + +// Transpile JavaScript files +gulp.task('transpile', () => { + return gulp.src(['api-server/**/*.js', 'tcp-server/**/*.js']) + .pipe(babel({ + presets: ['@babel/preset-env'] + })) + .pipe(gulp.dest('dist')); +}); + +// Copy non-JS files +gulp.task('copy', () => { + return gulp.src(['api-server/**/*.json', 'tcp-server/**/*.json', 'tcp-server/properties.env']) + .pipe(gulp.dest('dist')); +}); + +// Default task +gulp.task('default', gulp.series('clean', 'transpile', 'copy')); \ No newline at end of file diff --git a/package.json b/package.json index 336622e..a965dd4 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,13 @@ "express": "^4.21.2" }, "devDependencies": { + "@babel/core": "^7.26.7", + "@babel/preset-env": "^7.26.7", "@jest/globals": "^29.7.0", - "@babel/preset-env": "^7.26.0", "babel-jest": "^29.7.0", + "del": "^8.0.0", + "gulp": "^5.0.0", + "gulp-babel": "^8.0.0", "jest": "^29.7.0", "nock": "^14.0.0", "node": "^23.7.0",