diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..037efc80 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,61 @@ +name: CI Shariff-Plus + +on: + push: + branches: [ "develop" ] + pull_request: + branches: [ "develop" ] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + npm: + name: Install JS/CSS dependencies + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - uses: actions/setup-node@v4 + with: + node-version: latest + - uses: actions/cache@v4 + id: cache-npm + with: + path: node_modules + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json', 'src/**') }} + - name: Run npm ci + if: steps.cache-npm.outputs.cache-hit != 'true' + run: npm ci + + test: + name: Check Javascript & CSS code style and run test + runs-on: ubuntu-latest + needs: [npm] + steps: + - uses: actions/checkout@v5 + - uses: actions/setup-node@v4 + with: + node-version: latest + - uses: actions/cache/restore@v4 + with: + path: node_modules + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json', 'src/**') }} + - name: Check code style and run unit test + run: npm run test + + build: + name: Build distribution + runs-on: ubuntu-latest + needs: [npm] + steps: + - uses: actions/checkout@v5 + - uses: actions/setup-node@v4 + with: + node-version: latest + - uses: actions/cache/restore@v4 + with: + path: node_modules + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json', 'src/**') }} + - name: Run build + run: npm run build