name: Artifact on: push: branches: [ master, 'Release-*' ] tags: [ 'v*' ] release: types: [released] # Triggers the workflow only when merging pull request to the branches. pull_request: types: [closed] branches: [ master, 'Release-*' ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v2 - name: Setup Node uses: actions/setup-node@v2 with: node-version: 16.x - name: Cache node_modules uses: actions/cache@v2 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 ci - name: Cache build frontend uses: actions/cache@v2 id: cache-build-frontend with: path: frontend key: ${{ runner.os }}-frontend-${{ github.sha }} - name: Run build production application run: npm run buildfrontend - name: Cache build backend uses: actions/cache@v2 id: cache-build-backend with: path: backend key: ${{ runner.os }}-backend-${{ github.sha }} - name: Run build backend server run: npm run buildbackend deploy: runs-on: ubuntu-latest needs: build steps: - name: Checkout source code uses: actions/checkout@v2 - name: Cache build frontend uses: actions/cache@v2 id: cache-build-frontend with: path: frontend key: ${{ runner.os }}-frontend-${{ github.sha }} - name: Cache build backend uses: actions/cache@v2 id: cache-build-backend with: path: backend key: ${{ runner.os }}-backend-${{ github.sha }} - name: Compress files run: tar -czf /tmp/rtlbuild.tar.gz frontend backend rtl.js package.json package-lock.json - uses: actions/upload-artifact@v2 with: name: rtl-build-${{ github.event.release.tag_name }} path: /tmp/rtlbuild.tar.gz