291st/.github/workflows/Continues Integration.yaml

111 lines
2.5 KiB
YAML
Raw Normal View History

name: Continues Integration
2023-07-28 10:01:28 -04:00
on: [push, workflow_dispatch]
2023-07-26 21:11:30 -04:00
jobs:
2023-07-28 10:28:58 -04:00
dependencies:
name: Install dependencies
container: git.zakscode.com/ztimson/runner
2023-07-26 21:11:30 -04:00
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Restore node_modules
2023-07-26 23:32:41 -04:00
uses: actions/cache/restore@v3
with:
2023-07-26 23:57:19 -04:00
path: ./node_modules
2023-07-26 23:36:40 -04:00
key: node_modules
2023-07-27 00:03:17 -04:00
restore-keys: node_modules
- name: Install dependencies
run: npm install
- name: Cache node_modules
2023-07-26 21:53:35 -04:00
uses: actions/cache@v3
2023-07-26 21:47:07 -04:00
with:
2023-07-26 23:57:19 -04:00
path: ./node_modules
2023-07-26 23:36:40 -04:00
key: node_modules
2023-07-27 00:03:17 -04:00
restore-keys: 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: node_modules
restore-keys: node_modules
- name: Build sources
run: npm run build:dev
- name: Compress artifacts
run: tar -czvf dist.tar.gz dist
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: build-dev
path: dist.tar.gz
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: node_modules
restore-keys: node_modules
- name: Build sources
run: npm run build:prod
- name: Compress artifacts
run: tar -czvf dist.tar.gz dist
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: build-prod
path: dist.tar.gz
docker:
name: Build docker image
needs: build-prod
container: git.zakscode.com/ztimson/runner
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Download production build
uses: actions/download-artifact@v3
with:
name: build-prod
path: dist
- name: Extract artifacts
run: tar -xzvf dist.tar.gz
- 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}}