Skip to content
Snippets Groups Projects
Commit db78de4f authored by JunGu Kang's avatar JunGu Kang
Browse files

Merge branch '#36' into 'development'

#36 Add GitLab CI S3 Deploy Script

See merge request !32
parents 2e2d6b79 085a2233
No related branches found
No related tags found
2 merge requests!37Deploy,!32#36 Add GitLab CI S3 Deploy Script
Pipeline #4356 passed
VUE_APP_API_HOST=http://localhost:3000
VUE_APP_API_HOST=https://api.fitmin.xyz
...@@ -65,3 +65,5 @@ typings/ ...@@ -65,3 +65,5 @@ typings/
# macOS # macOS
.DS_Store .DS_Store
dist/
image: node:latest image: node:latest
stages:
- lint
- test
- build
cache: cache:
paths: paths:
- node_modules/ - node_modules/
...@@ -12,17 +7,38 @@ cache: ...@@ -12,17 +7,38 @@ cache:
before_script: before_script:
- npm install - npm install
job-lint: stages:
- lint
- test
- build
- deploy
lint:
stage: lint stage: lint
script: script:
- npm run lint - npm run lint
job-test: test:
stage: test stage: test
script: script:
- npm run test:unit - npm run test:unit
job-build: build:
stage: build stage: build
script: script:
- npm run build - npm run build
deployToS3:
stage: deploy
dependencies:
- build
before_script:
- curl "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- unzip awscliv2.zip
- sudo ./aws/install
script:
- aws2 s3 rm s3://$S3_BUCKET_NAME/ --recursive
- aws2 s3 cp dist s3://$S3_BUCKET_NAME/ --recursive --acl public-read
when: manual
only:
- master
...@@ -4,6 +4,23 @@ import VueRouter from 'vue-router'; ...@@ -4,6 +4,23 @@ import VueRouter from 'vue-router';
import Store from '@/store/index'; import Store from '@/store/index';
import APISetting from '@/settings/api'; import APISetting from '@/settings/api';
import Login from '@/views/Login.vue'; import Login from '@/views/Login.vue';
import Main from '@/views/Main.vue';
import ProgramList from '@/views/ProgramList.vue';
import ProgramCreate from '@/views/ProgramCreate.vue';
import ProgramDetail from '@/views/ProgramDetail.vue';
import ScheduleList from '@/views/ScheduleList.vue';
import ScheduleCreate from '@/views/ScheduleCreate.vue';
import ScheduleDetail from '@/views/ScheduleDetail.vue';
import TraineeList from '@/views/TraineeList.vue';
import TraineeCreate from '@/views/TraineeCreate.vue';
import TraineeDetail from '@/views/TraineeDetail.vue';
import TrainerList from '@/views/TrainerList.vue';
import TrainerCreate from '@/views/TrainerCreate.vue';
import TrainerDetail from '@/views/TrainerDetail.vue';
import VoucherList from '@/views/VoucherList.vue';
import VoucherCreate from '@/views/VoucherCreate.vue';
import VoucherDetail from '@/views/VoucherDetail.vue';
Vue.use(VueRouter); Vue.use(VueRouter);
...@@ -16,77 +33,82 @@ const routes = [ ...@@ -16,77 +33,82 @@ const routes = [
{ {
path: '/main', path: '/main',
name: 'Main', name: 'Main',
component: () => import('@/views/Main.vue'), component: Main,
}, },
{ {
path: '/program', path: '/program',
name: 'ProgramList', name: 'ProgramList',
component: () => import('@/views/ProgramList.vue'), component: ProgramList,
}, },
{ {
path: '/program/create', path: '/program/create',
name: 'ProgramCreate', name: 'ProgramCreate',
component: () => import('@/views/ProgramCreate.vue'), component: ProgramCreate,
}, },
{ {
path: '/program/:id', path: '/program/:id',
name: 'ProgramDetail', name: 'ProgramDetail',
component: () => import('@/views/ProgramDetail.vue'), component: ProgramDetail,
}, },
{ {
path: '/schedule', path: '/schedule',
name: 'ScheduleList', name: 'ScheduleList',
component: () => import('@/views/ScheduleList.vue'), component: ScheduleList,
}, },
{ {
path: '/schedule/create', path: '/schedule/create',
name: 'ScheduleCreate', name: 'ScheduleCreate',
component: () => import('../views/ScheduleCreate.vue'), component: ScheduleCreate,
}, },
{ {
path: '/schedule/:id', path: '/schedule/:id',
name: 'ScheduleDetail', name: 'ScheduleDetail',
component: () => import('@/views/ScheduleDetail.vue'), component: ScheduleDetail,
}, },
{ {
path: '/trainee', path: '/trainee',
name: 'TraineeList', name: 'TraineeList',
component: () => import('@/views/TraineeList.vue'), component: TraineeList,
}, },
{ {
path: '/trainee/create', path: '/trainee/create',
name: 'TraineeCreate', name: 'TraineeCreate',
component: () => import('@/views/TraineeCreate.vue'), component: TraineeCreate,
}, },
{ {
path: '/trainee/:id', path: '/trainee/:id',
name: 'TraineeDetail', name: 'TraineeDetail',
component: () => import('@/views/TraineeDetail.vue'), component: TraineeDetail,
}, },
{ {
path: '/trainer', path: '/trainer',
name: 'TrainerList', name: 'TrainerList',
component: () => import('@/views/TrainerList.vue'), component: TrainerList,
},
{
path: '/trainer/create',
name: 'TrainerCreate',
component: TrainerCreate,
}, },
{ {
path: '/trainer/:id', path: '/trainer/:id',
name: 'TrainerDetail', name: 'TrainerDetail',
component: () => import('@/views/TrainerDetail.vue'), component: TrainerDetail,
}, },
{ {
path: '/voucher', path: '/voucher',
name: 'VoucherList', name: 'VoucherList',
component: () => import('@/views/VoucherList.vue'), component: VoucherList,
}, },
{ {
path: '/voucher/create', path: '/voucher/create',
name: 'VoucherCreate', name: 'VoucherCreate',
component: () => import('@/views/VoucherCreate.vue'), component: VoucherCreate,
}, },
{ {
path: '/voucher/:id', path: '/voucher/:id',
name: 'VoucherDetail', name: 'VoucherDetail',
component: () => import('@/views/VoucherDetail.vue'), component: VoucherDetail,
}, },
]; ];
......
const host = 'http://localhost:3000'; const host = process.env.VUE_APP_API_HOST;
export default { export default {
endpoints: { endpoints: {
...@@ -10,6 +10,10 @@ export default { ...@@ -10,6 +10,10 @@ export default {
}, },
logout: `${host}/auth/logout`, logout: `${host}/auth/logout`,
}, },
diet: {
list: `${host}/diet`,
detail: id => (`${host}/diet/${id}`),
},
program: { program: {
list: `${host}/program`, list: `${host}/program`,
detail: id => (`${host}/program/${id}`), detail: id => (`${host}/program/${id}`),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment