-
Notifications
You must be signed in to change notification settings - Fork 28
/
macos_instructions.yml
120 lines (117 loc) · 5.27 KB
/
macos_instructions.yml
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# actionOnlyInformation contains information necessary for the GitHub action to run,
# but not useful to an end user
# setupInformation contains two different keys,
# 1. Text
# This is displayed only in README.md and is pasted exactly into README.md, this means
# that any md formatting must be made to the text in the text field.
# For example:
# text: ### This is a heading
#
# 2. Code
# The key run is the only field pasted into README.md. All the fields are added
# to the end of the steps in macos_installation_instruction.yml.
# NOTE: Do not have multiline code, this will cause problems for github actions, instead use ';'s
# scripts/macos-instructions.sh will substitute each ';' for a new line in README.md.
# NOTE: "|| true" will be removed from the code shown on README.md
actionOnlyInformation:
name: Verify MacOS Installation Instructions
# The file macos_installation_instructions.yml is generated with the script scripts/macos-instructions.sh
on:
schedule:
- cron: '30 12 * * 1' # This is every Monday at 5:30am PST/8:30am EST
jobs:
build:
runs-on: macos-latest
steps:
- name: Checkout dockstore/dockstore
uses: actions/checkout@v4
with:
repository: dockstore/dockstore
path: dockstore
- name: Checkout dockstore/dockstore-ui2
uses: actions/checkout@v4
with:
repository: dockstore/dockstore-ui2
path: dockstore-ui2
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
setupInformation:
- text: '### Setting up a Mac for Dockstore development'
- text: Install Docker (Be sure to click on 'Mac with Apple chip' if you have Apple silicon)
- text: https://docs.docker.com/desktop/mac/install/
- newLine: 1
- text: Install Brew
- text: https://brew.sh/
- code:
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- newLine: 1
- text: Run 'git' to trigger the install of Xcode or the Command Line Tools which will install and or update git
- text: https://developer.apple.com/forums/thread/672087?answerId=659036022#659036022
- code:
run: git || true
- text: _(If that doesn't work install git manually https://git-scm.com/download/mac)_
- newLine: 2
- text: Setup git user information
- code:
run: git config --global user.email "you@example.com";git config --global user.name "Your Name" # ; will be replaced with new lines in README.md
- text: |
[Read about git token requirements](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/)
- text: |
[Setup personal access token for git CLI](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)
- text: |
[It's helpful to cache your git personal access token](https://docs.github.com/en/get-started/getting-started-with-git/caching-your-github-credentials-in-git)
- text: Install Hubflow
- text: https://datasift.github.io/gitflow/TheHubFlowTools.html
- code:
run: git clone https://github.com/datasift/gitflow;cd gitflow;sudo ./install.sh # ; will be replaced with new lines in README.md
- newLine: 1
- text: Install JDK 17
- text: https://formulae.brew.sh/formula/openjdk@17
- code:
run: brew install openjdk@17
- text: Download and install node.js
- text: https://github.com/nvm-sh/nvm
- code:
run: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
- text: Install git secrets
- text: https://github.com/awslabs/git-secrets
- code:
run: brew install git-secrets
- text: Install wget
- code:
run: brew install wget
- newLine: 1
- text: Install jq
- code:
run: brew install jq
- text: '#### Build the webservice'
- text: (cd to where you cloned the dockstore/dockstore repo)
- code:
run: ./mvnw clean install
working-directory: dockstore # Where dockstore/dockstore was cloned by actions/checkout@v4
- newLine: 1
- text: '#### Build the UI'
- text: (cd to where you cloned the dockstore/dockstore-ui2 repo)
- newLine: 1
- text: Set up UI requirements
- text: 'NOTE: You must use the --legacy-peer-deps switch due to using npm version 8.11.0 (> npm 6) '
- text: for reasons mentioned in [this post](https://stackoverflow.com/questions/66239691/what-does-npm-install-legacy-peer-deps-do-exactly-when-is-it-recommended-wh)
- code:
run: npm ci --legacy-peer-deps
working-directory: dockstore-ui2 # Where dockstore/dockstore-ui2 was cloned by actions/checkout@v3
- newLine: 1
- text: Run build
- code:
run: npm run build
working-directory: dockstore-ui2
- text: '#### Optional'
- text: Install IntelliJ _(if on Apple Silicon, select the .dmg (Apple Silicon), otherwise select .dmg(Intel)_
- newLine: 1
- text: https://www.jetbrains.com/idea/download/#section=mac
- newLine: 1
- text: Add the Scala plugin to IntelliJ
- text: https://www.jetbrains.com/help/idea/managing-plugins.html
- newLine: 1