diff --git a/.github/workflows/ci.yml b/.github/workflows/build.yml similarity index 58% rename from .github/workflows/ci.yml rename to .github/workflows/build.yml index 4d851528..1a18584e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/build.yml @@ -1,16 +1,9 @@ -name: Artifact +name: Build on: - release: - types: [released] pull_request: - types: [closed] - branches: [ master ] workflow_dispatch: - -env: - CI: false - + jobs: build: runs-on: ubuntu-22.04 @@ -19,7 +12,7 @@ jobs: uses: actions/checkout@v3 - name: Setup Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18.x @@ -59,32 +52,3 @@ jobs: - name: Run build backend server run: npm run backend:build - - deploy: - runs-on: ubuntu-22.04 - needs: build - steps: - - name: Checkout source code - uses: actions/checkout@v3 - - - name: Cache build frontend - uses: actions/cache@v3 - id: cache-build-frontend - with: - path: apps/frontend - key: ${{ runner.os }}-frontend-${{ github.sha }} - - - name: Cache build backend - uses: actions/cache@v3 - id: cache-build-backend - with: - path: apps/backend - key: ${{ runner.os }}-backend-${{ github.sha }} - - - name: Compress files - run: tar -czf /tmp/clnapp.tar.gz apps/frontend/build apps/backend/dist package.json package-lock.json - - - uses: actions/upload-artifact@v3 - with: - name: clnapp-build$VERSION - path: /tmp/clnapp.tar.gz diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 692930ed..25048557 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -11,7 +11,7 @@ jobs: - uses: actions/checkout@v3 - name: Use Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18.x diff --git a/.github/workflows/github.yml b/.github/workflows/release.yml similarity index 64% rename from .github/workflows/github.yml rename to .github/workflows/release.yml index e3c58b72..aae53ed5 100644 --- a/.github/workflows/github.yml +++ b/.github/workflows/release.yml @@ -1,14 +1,39 @@ -name: Build and publish Github image +name: Build artifact and package on: release: types: [released] - pull_request: - types: [closed] - branches: [ master ] workflow_dispatch: jobs: + artifact: + runs-on: ubuntu-22.04 + steps: + - name: Checkout source code + uses: actions/checkout@v3 + + - name: Cache build frontend + uses: actions/cache@v3 + id: cache-build-frontend + with: + path: apps/frontend + key: ${{ runner.os }}-frontend-${{ github.sha }} + + - name: Cache build backend + uses: actions/cache@v3 + id: cache-build-backend + with: + path: apps/backend + key: ${{ runner.os }}-backend-${{ github.sha }} + + - name: Compress files + run: tar -czf /tmp/clnapp.tar.gz apps/frontend/build apps/backend/dist package.json package-lock.json + + - uses: actions/upload-artifact@v3 + with: + name: clnapp-build$VERSION + path: /tmp/clnapp.tar.gz + build: name: Build image runs-on: ubuntu-22.04 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..4d57de32 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,38 @@ +name: Unit tests + +on: + pull_request: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-22.04 + steps: + - name: Checkout source code + uses: actions/checkout@v3 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 18.x + + - name: Get version from package.json + id: package-version + run: | + echo "VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV + echo "Project Version: $VERSION" + + - name: Cache node_modules + uses: actions/cache@v3 + id: cache-npm-packages + with: + path: node_modules + key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }} + + - name: Install NPM dependencies + if: steps.cache-npm-packages.outputs.cache-hit != 'true' + run: npm clean-install + + - name: Run frontend unit tests + run: npm run frontend:test +