|
1 | | -# This is a basic workflow to help you get started with Actions |
| 1 | +name: NodeJS CI workflow |
2 | 2 |
|
3 | | -name: CI |
4 | | - |
5 | | -# Controls when the workflow will run |
6 | 3 | on: |
7 | | - # Triggers the workflow on push or pull request events but only for the master branch |
8 | | - push: |
9 | | - branches: [ master ] |
10 | | - pull_request: |
11 | | - branches: [ master ] |
12 | | - |
13 | | - # Allows you to run this workflow manually from the Actions tab |
14 | | - workflow_dispatch: |
15 | | - |
16 | | -# A workflow run is made up of one or more jobs that can run sequentially or in parallel |
| 4 | + workflow_dispatch: |
| 5 | + push: |
17 | 6 | jobs: |
18 | | - # This workflow contains a single job called "build" |
19 | | - build: |
20 | | - # The type of runner that the job will run on |
| 7 | + node_build: |
| 8 | + strategy: |
| 9 | + matrix: |
| 10 | + version: [16, 18] |
21 | 11 | runs-on: ubuntu-latest |
22 | | - |
23 | | - # Steps represent a sequence of tasks that will be executed as part of the job |
24 | 12 | steps: |
25 | | - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it |
26 | | - - uses: actions/checkout@v2 |
| 13 | + - uses: actions/checkout@v3 |
27 | 14 |
|
28 | | - # Runs a set of commands using the runners shell |
29 | | - - name: Install Node Modules |
30 | | - run: | |
31 | | - npm install |
32 | | - - name: Node Build Process |
33 | | - run: | |
34 | | - npm run build --if-present |
35 | | - - name: Node Test Process |
36 | | - run: | |
37 | | - echo "Running Test Cases" |
38 | | - - name: Login to Docker Hub |
39 | | - uses: docker/login-action@v1 |
40 | | - with: |
41 | | - registry: docker.io |
42 | | - username: ${{ secrets.DOCKER_USERNAME }} |
43 | | - password: ${{ secrets.DOCKER_PASSWORD }} |
44 | | - - uses: jerray/publish-docker-action@master |
45 | | - with: |
46 | | - username: ${{ secrets.DOCKER_USERNAME }} |
47 | | - password: ${{ secrets.DOCKER_PASSWORD }} |
48 | | - registry: docker.io |
49 | | - repository: anujsharma1990/nodejsimage |
50 | | - - name: Check Kubernetes Connectivity |
51 | | - uses: actions-hub/kubectl@master |
52 | | - env: |
53 | | - KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }} |
54 | | - with: |
55 | | - args: get pods |
56 | | - - name: Deploying Kubernetes Deployment YAML |
57 | | - uses: actions-hub/kubectl@master |
58 | | - env: |
59 | | - KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }} |
60 | | - with: |
61 | | - args: apply -f deployment.yaml |
| 15 | + - uses: actions/setup-node@v3 |
| 16 | + with: |
| 17 | + node-version: "${{ matrix.version }}" |
| 18 | + registry-url: https://registry.npmjs.org/ |
| 19 | + - name: Cache Node Modules Dependencies |
| 20 | + uses: actions/cache@v3 |
| 21 | + with: |
| 22 | + path: '**/node_modules' |
| 23 | + key: ${{ runner.os }}-cache |
| 24 | + - name: NodeJS Build Process |
| 25 | + run: | |
| 26 | + npm install |
| 27 | + npm run build --if-present |
| 28 | + npm run test |
0 commit comments