-
Notifications
You must be signed in to change notification settings - Fork 2
83 lines (80 loc) · 2.08 KB
/
workflow-node.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
name: Node Workflow
# Standard workflow for any NodeJS based projects.
on:
workflow_call:
workflow_dispatch:
jobs:
# Build jobs
build_npm:
name: "Build via NPM"
uses: ./.github/workflows/run_npm.yaml
with:
script: "build"
lint_npm:
name: "Lint via NPM"
uses: ./.github/workflows/run_npm.yaml
with:
script: "lint"
lint_docker:
name: "Lint Dockerfile"
uses: ./.github/workflows/lint_docker.yaml
# Test jobs
test_npm:
name: "Run unit tests via NPM"
needs:
- build_npm
- lint_npm
- lint_docker
uses: ./.github/workflows/run_npm.yaml
with:
script: "test"
build_docker:
name: "Build docker image"
needs:
- build_npm
- lint_npm
- lint_docker
uses: ./.github/workflows/build_docker.yaml
with:
repo_project: "rcsb"
docker_image_name: "rcsb-sierra"
# Staging jobs
build_docker_staging:
name: "Build docker image with staging tag"
needs:
- test_npm
- build_docker
uses: ./.github/workflow/build_docker.yaml
with:
repo_project: "rcsb"
docker_image_name: "rcsb-sierra"
additional_tag: "staging"
skaffold_deploy_staging:
name: "Skaffold deploy into staging namespace"
if: github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
needs:
- build_docker_staging
uses: ./.github/workflows/deploy_skaffold.yaml
with:
namespace: staging
profile: staging
# Production jobs
build_docker_production:
name: "Build docker image with production tag"
needs:
- test_npm
- build_docker
uses: ./.github/workflow/build_docker.yaml
with:
repo_project: "rcsb"
docker_image_name: "rcsb-sierra"
additional_tag: "production"
skaffold_deploy_production:
name: Skaffold deploy into production environment"
if: github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
needs:
- skaffold_deploy_production
uses: ./.github/workflows/deploy_skaffold.yaml
with:
namespace: production
profile: production