From cce27b8dbaad58f52fa9d19d21ba840677b38419 Mon Sep 17 00:00:00 2001 From: JunGu Kang <chr0m3.kr@gmail.com> Date: Tue, 10 Dec 2019 20:10:39 +0900 Subject: [PATCH] #36 Add GitLab CI S3 Deploy Script Modify vue router. Modify api settings - api server host to use environment variable. Add development and production environment file. --- .env.development | 1 + .env.production | 1 + .gitignore | 2 ++ .gitlab-ci.yml | 37 ++++++++++++++++++++--------- src/router/index.js | 58 +++++++++++++++++++++++++++++++++------------ src/settings/api.js | 6 ++++- 6 files changed, 78 insertions(+), 27 deletions(-) create mode 100644 .env.development create mode 100644 .env.production diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..d1c68cc --- /dev/null +++ b/.env.development @@ -0,0 +1 @@ +VUE_APP_API_HOST=http://localhost:3000 diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..4ea9aee --- /dev/null +++ b/.env.production @@ -0,0 +1 @@ +VUE_APP_API_HOST=https://api.fitmin.xyz diff --git a/.gitignore b/.gitignore index 4d7a794..b686085 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,5 @@ typings/ # macOS .DS_Store + +dist/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0b4e410..98d23a4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,28 +1,43 @@ -image: node:latest +default: + image: node:latest + cache: + paths: + - node_modules/ + before_script: + - npm install stages: - lint - test - build + - deploy -cache: - paths: - - node_modules/ - -before_script: - - npm install - -job-lint: +lint: stage: lint script: - npm run lint -job-test: +test: stage: test script: - npm run test:unit -job-build: +build: stage: build script: - npm run build + +deployToS3: + stage: deploy + dependencies: + - job-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 diff --git a/src/router/index.js b/src/router/index.js index 02a5598..1acfeba 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -4,6 +4,24 @@ import VueRouter from 'vue-router'; import Store from '@/store/index'; import APISetting from '@/settings/api'; import Login from '@/views/Login.vue'; +import Main from '@/views/Main.vue'; +import DietList from '@/views/DietList.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); @@ -16,77 +34,87 @@ const routes = [ { path: '/main', name: 'Main', - component: () => import('@/views/Main.vue'), + component: Main, + }, + { + path: '/diet', + name: 'DietList', + component: DietList, }, { path: '/program', name: 'ProgramList', - component: () => import('@/views/ProgramList.vue'), + component: ProgramList, }, { path: '/program/create', name: 'ProgramCreate', - component: () => import('@/views/ProgramCreate.vue'), + component: ProgramCreate, }, { path: '/program/:id', name: 'ProgramDetail', - component: () => import('@/views/ProgramDetail.vue'), + component: ProgramDetail, }, { path: '/schedule', name: 'ScheduleList', - component: () => import('@/views/ScheduleList.vue'), + component: ScheduleList, }, { path: '/schedule/create', name: 'ScheduleCreate', - component: () => import('../views/ScheduleCreate.vue'), + component: ScheduleCreate, }, { path: '/schedule/:id', name: 'ScheduleDetail', - component: () => import('@/views/ScheduleDetail.vue'), + component: ScheduleDetail, }, { path: '/trainee', name: 'TraineeList', - component: () => import('@/views/TraineeList.vue'), + component: TraineeList, }, { path: '/trainee/create', name: 'TraineeCreate', - component: () => import('@/views/TraineeCreate.vue'), + component: TraineeCreate, }, { path: '/trainee/:id', name: 'TraineeDetail', - component: () => import('@/views/TraineeDetail.vue'), + component: TraineeDetail, }, { path: '/trainer', name: 'TrainerList', - component: () => import('@/views/TrainerList.vue'), + component: TrainerList, + }, + { + path: '/trainer/create', + name: 'TrainerCreate', + component: TrainerCreate, }, { path: '/trainer/:id', name: 'TrainerDetail', - component: () => import('@/views/TrainerDetail.vue'), + component: TrainerDetail, }, { path: '/voucher', name: 'VoucherList', - component: () => import('@/views/VoucherList.vue'), + component: VoucherList, }, { path: '/voucher/create', name: 'VoucherCreate', - component: () => import('@/views/VoucherCreate.vue'), + component: VoucherCreate, }, { path: '/voucher/:id', name: 'VoucherDetail', - component: () => import('@/views/VoucherDetail.vue'), + component: VoucherDetail, }, ]; diff --git a/src/settings/api.js b/src/settings/api.js index df8a2ad..a0b1dcd 100644 --- a/src/settings/api.js +++ b/src/settings/api.js @@ -1,4 +1,4 @@ -const host = 'http://localhost:3000'; +const host = process.env.VUE_APP_API_HOST; export default { endpoints: { @@ -10,6 +10,10 @@ export default { }, logout: `${host}/auth/logout`, }, + diet: { + list: `${host}/diet`, + detail: id => (`${host}/diet/${id}`), + }, program: { list: `${host}/program`, detail: id => (`${host}/program/${id}`), -- GitLab