|
|
@@ -0,0 +1,136 @@
|
|
|
+- name: Create build folder
|
|
|
+ ansible.builtin.file:
|
|
|
+ path: "{{ app_workspace | dirname }}"
|
|
|
+ state: directory
|
|
|
+ # owner: "{{ ansible_user }}"
|
|
|
+ mode: "0755"
|
|
|
+
|
|
|
+- name: Git checkout mint repo
|
|
|
+ ansible.builtin.git:
|
|
|
+ repo: "https://github.com/iapt-platform/mint.git"
|
|
|
+ dest: "{{ app_workspace }}"
|
|
|
+ version: "{{ mint_version }}"
|
|
|
+
|
|
|
+- name: Extract dashboard-v4
|
|
|
+ ansible.builtin.unarchive:
|
|
|
+ src: dashboard-v4-{{ ansible_facts['architecture'] }}-20260116065749.tar.xz
|
|
|
+ dest: "{{ app_workspace }}/dashboard-v4/dashboard"
|
|
|
+ creates: "{{ app_workspace }}/dashboard-v4/dashboard/yarn.lock"
|
|
|
+
|
|
|
+- name: Extract api-v8
|
|
|
+ ansible.builtin.unarchive:
|
|
|
+ src: api-v8-20260117.tar.xz
|
|
|
+ dest: "{{ app_workspace }}/api-v8"
|
|
|
+ creates: "{{ app_workspace }}/api-v8/composer.lock"
|
|
|
+
|
|
|
+- name: Extract dashboard-v6
|
|
|
+ ansible.builtin.unarchive:
|
|
|
+ src: dashboard-v6-{{ ansible_facts['architecture'] }}-20260116064312.tar.xz
|
|
|
+ dest: "{{ app_workspace }}/dashboard-v6"
|
|
|
+ creates: "{{ app_workspace }}/dashboard-v6/package-lock.json"
|
|
|
+
|
|
|
+- name: Extract api-v12
|
|
|
+ ansible.builtin.unarchive:
|
|
|
+ src: api-v12-{{ ansible_facts['architecture'] }}-20260116064312.tar.xz
|
|
|
+ dest: "{{ app_workspace }}/api-v12"
|
|
|
+ creates: "{{ app_workspace }}/api-v12/composer.lock"
|
|
|
+
|
|
|
+- name: Extract open-ai-server
|
|
|
+ ansible.builtin.unarchive:
|
|
|
+ src: open-ai-server-{{ ansible_facts['architecture'] }}-20260116064312.tar.xz
|
|
|
+ dest: "{{ app_workspace }}/open-ai-server"
|
|
|
+ creates: "{{ app_workspace }}/open-ai-server/package-lock.json"
|
|
|
+
|
|
|
+- name: Build dashboard-v4
|
|
|
+ ansible.builtin.shell: |
|
|
|
+ source ~/.nvm/nvm.sh && yarn build
|
|
|
+ args:
|
|
|
+ executable: /bin/bash
|
|
|
+ chdir: "{{ app_workspace }}/dashboard-v4/dashboard"
|
|
|
+ creates: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}/dashboard-v4"
|
|
|
+ environment:
|
|
|
+ BUILD_PATH: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}/dashboard-v4"
|
|
|
+ NODE_OPTIONS: "--max_old_space_size=5120"
|
|
|
+ PUBLIC_URL: "{{ app_dashboard_v4_base_path }}"
|
|
|
+ REACT_APP_DEFAULT_LOCALE: "zh-Hans"
|
|
|
+ REACT_APP_LANGUAGES: "en-US,zh-Hans,zh-Hant"
|
|
|
+ REACT_APP_ENABLE_LOCAL_TOKEN: "true"
|
|
|
+ REACT_APP_TOKEN_KEY: "{{ app_dashboard_token_key }}"
|
|
|
+ REACT_APP_DOCUMENTS_SERVER: "{{ app_documents_server }}"
|
|
|
+ REACT_APP_RPC_SERVER: "{{ app_grpc_web_server }}"
|
|
|
+ REACT_APP_ASSETS_SERVER: "{{ app_assets_server }}"
|
|
|
+ REACT_APP_API_SERVER: "https://{{ app_domain }}"
|
|
|
+ REACT_APP_ICP_CODE: "{{ app_icp_code }}"
|
|
|
+ REACT_APP_MPS_CODE: "{{ app_mps_code }}"
|
|
|
+ REACT_APP_QUESTIONNAIRE_LINK: "{{ app_questionnaire_link }}"
|
|
|
+ REACT_APP_OPENAI_PROXY: "{{ app_openai_proxy_server }}/api/openai"
|
|
|
+
|
|
|
+- name: Build dashboard-v6
|
|
|
+ ansible.builtin.shell: |
|
|
|
+ source ~/.nvm/nvm.sh && npm run build -- --base={{ app_dashboard_v6_base_path }} --outDir {{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}/dashboard-v6
|
|
|
+ args:
|
|
|
+ executable: /bin/bash
|
|
|
+ chdir: "{{ app_workspace }}/dashboard-v6"
|
|
|
+ creates: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}/dashboard-v6"
|
|
|
+ environment:
|
|
|
+ NODE_ENV: production
|
|
|
+ VITE_DEFAULT_LOCALE: "zh-Hans"
|
|
|
+ VITE_LANGUAGES: "en-US,zh-Hans,zh-Hant"
|
|
|
+ VITE_ENABLE_LOCAL_TOKEN: "true"
|
|
|
+ VITE_TOKEN_KEY: "{{ app_dashboard_token_key }}"
|
|
|
+ VITE_DOCUMENTS_SERVER: "{{ app_documents_server }}"
|
|
|
+ VITE_RPC_SERVER: "{{ app_grpc_web_server }}"
|
|
|
+ VITE_ASSETS_SERVER: "{{ app_assets_server }}"
|
|
|
+ VITE_API_SERVER: "https://{{ app_domain }}"
|
|
|
+ VITE_ICP_CODE: "{{ app_icp_code }}"
|
|
|
+ VITE_MPS_CODE: "{{ app_mps_code }}"
|
|
|
+ VITE_QUESTIONNAIRE_LINK: "{{ app_questionnaire_link }}"
|
|
|
+ VITE_OPENAI_PROXY: "{{ app_openai_proxy_server }}/api/openai"
|
|
|
+
|
|
|
+- name: Build open-ai proxy server
|
|
|
+ ansible.builtin.shell: |
|
|
|
+ source ~/.nvm/nvm.sh && npm run build -- --output-path {{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}/open-ai-server
|
|
|
+ args:
|
|
|
+ executable: /bin/bash
|
|
|
+ chdir: "{{ app_workspace }}/open-ai-server"
|
|
|
+ creates: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}/open-ai-server"
|
|
|
+ environment:
|
|
|
+ NODE_ENV: production
|
|
|
+
|
|
|
+- name: Copy api-v8 to release folder
|
|
|
+ ansible.posix.synchronize:
|
|
|
+ src: "{{ app_workspace }}/api-v8"
|
|
|
+ dest: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}"
|
|
|
+ recursive: true
|
|
|
+
|
|
|
+- name: Copy api-v12 to release folder
|
|
|
+ ansible.posix.synchronize:
|
|
|
+ src: "{{ app_workspace }}/api-v12"
|
|
|
+ dest: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}"
|
|
|
+ recursive: true
|
|
|
+
|
|
|
+- name: Copy ai-translate to release folder
|
|
|
+ ansible.posix.synchronize:
|
|
|
+ src: "{{ app_workspace }}/ai-translate"
|
|
|
+ dest: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}"
|
|
|
+ recursive: true
|
|
|
+
|
|
|
+# - name: Archive release.tar.xz
|
|
|
+# community.general.archive:
|
|
|
+# path: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}/*"
|
|
|
+# dest: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}.tar.xz"
|
|
|
+# format: xz
|
|
|
+# remove: true
|
|
|
+
|
|
|
+- name: Archive release.tar.xz
|
|
|
+ ansible.builtin.command: tar --remove-files -cJf {{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}.tar.xz -C {{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }} .
|
|
|
+ args:
|
|
|
+ creates: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}.tar.xz"
|
|
|
+ environment:
|
|
|
+ XZ_OPT: "-9"
|
|
|
+
|
|
|
+- name: Download release.tar.xz
|
|
|
+ ansible.builtin.fetch:
|
|
|
+ src: "{{ app_workspace }}/tmp/{{ app_domain }}-{{ mint_version }}.tar.xz"
|
|
|
+ dest: "{{ playbook_dir }}/tmp/"
|
|
|
+ flat: true
|