-
Notifications
You must be signed in to change notification settings - Fork 9
153 lines (130 loc) · 4.86 KB
/
workflow.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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
name: Main Workflow
on:
pull_request:
branches:
- master
push:
branches:
- master
jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
ocaml-compiler:
- 4.10.0
skip_test:
- false
include:
- os: ubuntu-latest
ocaml-compiler: 4.08.0
skip_test: true
runs-on: ${{ matrix.os }}
env:
PGHOST: localhost
PGDATABASE: postgres_db
PGPASSWORD: postgres_password
PGPORT: 5432
PGUSER: postgres_user
services:
postgres:
# Docker Hub image
image: postgres:latest
# service environment variables
# `POSTGRES_HOST` is `postgres`
env:
# optional (defaults to `postgres`)
POSTGRES_DB: postgres_db
# required
POSTGRES_PASSWORD: postgres_password
# optional (defaults to `5432`)
POSTGRES_PORT: 5432
# optional (defaults to `postgres`)
POSTGRES_USER: postgres_user
ports:
# maps tcp port 5432 on service container to the host
- 5432:5432
# set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Retrieve opam cache
uses: actions/cache@v2
id: cache-opam
with:
path: ~/.opam
key: v2-${{ runner.os }}-freeton_wallet-${{ matrix.ocaml-compiler }}-${{ hashFiles('opam/*.opam') }}
# restore-keys: |
# v2-${{ runner.os }}-opam-${{ matrix.ocaml-compiler }}-
- name: Use OCaml ${{ matrix.ocaml-compiler }}
uses: avsm/setup-ocaml@v2
with:
ocaml-compiler: ${{ matrix.ocaml-compiler }}
opam-pin: false
opam-depext: false
- name: Set git user
run: |
git config --global user.name github-actions
git config --global user.email github-actions-bot@users.noreply.github.com
- name: add ocp-opam-repository
run: |
ls $HOME/.opam/repo/ocp || opam repo add ocp git+https://github.com/OCamlPro/ocp-opam-repository
# if: steps.cache-opam.outputs.cache-hit != 'true'
- run: sudo apt-get update
- run: opam pin add . -y --no-action
- run: opam depext -y freeton_wallet_lib ft freeton_crawler_lib freeton_crawler_db_updater freeton_crawler_db_versions freeton_solidity_lib
# if: steps.cache-opam.outputs.cache-hit != 'true'
- run: opam install -y opam/*.opam --deps-only --with-test
# if: steps.cache-opam.outputs.cache-hit != 'true'
# - run: opam upgrade --fixup
# if: steps.cache-opam.outputs.cache-hit == 'true'
- run: dos2unix scripts/*.sh
if: matrix.os == 'windows-latest'
- name: build
run: |
opam exec -- dune build @install --ignore-promoted-rules
./scripts/copy-bin.sh freeton_wallet_lib ft freeton_crawler_lib freeton_crawler_db_updater freeton_crawler_db_versions freeton_solidity_lib
- name: check consistency of committed pre-processed files
run: git diff --exit-code src/freeton_crawler_lib
- name: run test suite
run: |
./scripts/before.sh test
opam exec -- dune build @runtest
./scripts/after.sh test
if: matrix.skip_test != 'true'
- name: test source is well formatted
run: make fmt
continue-on-error: true
if: matrix.ocaml-compiler == '4.10.0' && matrix.os == 'ubuntu-latest'
- name: build-doc
# if: github.ref == 'refs/heads/master' && matrix.ocaml-compiler == '4.10.0' && matrix.os == 'ubuntu-latest'
run: |
sudo apt install -yqq python3-sphinx python3-sphinx-rtd-theme
opam install -y dune odoc
mkdir -p _drom/docs/doc/.
rsync -auv docs/. _drom/docs/.
./scripts/before.sh odoc _drom/docs/doc
opam exec -- dune build @doc --ignore-promoted-rules
rsync -auv --delete _build/default/_doc/_html/. _drom/docs/doc/.
./scripts/after.sh odoc _drom/docs/doc
./scripts/before.sh sphinx _drom/docs/sphinx
sphinx-build sphinx _drom/docs/sphinx
./scripts/after.sh sphinx _drom/docs/sphinx
touch _drom/docs/.nojekyll
touch _drom/docs/sphinx/.nojekyll
touch _drom/docs/doc/.nojekyll
- name: deploy-doc
uses: JamesIves/github-pages-deploy-action@3.6.2
if: github.ref == 'refs/heads/master' && matrix.ocaml-compiler == '4.10.0' && matrix.os == 'ubuntu-latest'
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: _drom/docs/
CLEAN: true