name: Continues Integration on: [push, workflow_dispatch] jobs: dependencies: name: Install dependencies container: git.zakscode.com/ztimson/runner steps: - name: Checkout repository uses: actions/checkout@v3 - name: Restore node_modules uses: actions/cache/restore@v3 with: path: node_modules key: ${{runner.os}}-node_modules - name: Install dependencies run: npm install - name: Cache node_modules uses: actions/cache/save@v3 with: path: ./node_modules key: ${{runner.os}}-node_modules build-dev: name: Build needs: dependencies container: git.zakscode.com/ztimson/runner steps: - name: Checkout repository uses: actions/checkout@v3 - name: Restore node_modules uses: actions/cache/restore@v3 with: path: node_modules key: ${{runner.os}}-node_modules - name: Build sources run: npm run build:dev - name: Cache build artifacts uses: actions/cache/save@v3 with: path: ./dist key: dist-dev build-prod: name: Build production needs: dependencies container: git.zakscode.com/ztimson/runner steps: - name: Checkout repository uses: actions/checkout@v3 - name: Restore node_modules uses: actions/cache/restore@v3 with: path: node_modules key: ${{runner.os}}-node_modules - name: Build sources run: npm run build:prod - name: Cache build artifacts uses: actions/cache/save@v3 with: path: ./dist key: dist-prod docker: name: Build docker image needs: build-prod container: git.zakscode.com/ztimson/runner steps: - name: Checkout repository uses: actions/checkout@v3 - name: Restore build artifacts uses: actions/cache/restore@v3 with: path: dist key: dist-prod restore-keys: dist-prod - name: Build docker image uses: ztimson/actions/docker/build@develop - name: Push docker image uses: ztimson/actions/docker/push@develop with: registry_pass: ${{secrets.DEPLOY_TOKEN}}