Skip to content

Commit 10a7fa3

Browse files
committed
Git Action
(cherry picked from commit 8747697)
1 parent ea4f0ee commit 10a7fa3

File tree

1 file changed

+131
-0
lines changed

1 file changed

+131
-0
lines changed

.github/workflows/build-test.yml

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
name: Build and Test
2+
3+
on:
4+
pull_request:
5+
branches: ['**']
6+
push:
7+
branches: ['main']
8+
tags: [v*]
9+
release:
10+
types: [published]
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
container:
16+
image: s22s/circleci-openjdk-conda-gdal:b8e30ee
17+
18+
steps:
19+
- uses: actions/checkout@v2
20+
with:
21+
fetch-depth: 0
22+
- uses: coursier/cache-action@v6
23+
- uses: olafurpg/setup-scala@v13
24+
with:
25+
java-version: [email protected]
26+
27+
- name: Set up Python 3.8
28+
uses: actions/setup-python@v2
29+
with:
30+
python-version: 3.8
31+
32+
- name: Install Conda dependencies
33+
run: |
34+
# $CONDA is an environment variable pointing to the root of the miniconda directory
35+
$CONDA/bin/conda install -c conda-forge --yes --file pyrasterframes/src/main/python/requirements-condaforge.txt
36+
37+
- run: ulimit -c unlimited -S
38+
39+
# Do just the compilation stage to minimize sbt memory footprint
40+
- name: Compile
41+
run: sbt -v -batch compile test:compile it:compile
42+
43+
- name: Core tests
44+
run: sbt -batch core/test
45+
46+
- name: Datasource tests
47+
run: sbt -batch datasource/test
48+
49+
- name: Experimental tests
50+
run: sbt -batch experimental/test
51+
52+
- name: Create PyRasterFrames package
53+
run: sbt -v -batch pyrasterframes/package
54+
55+
- name: Python tests
56+
run: sbt -batch pyrasterframes/test
57+
58+
- name: Collect artifacts
59+
if: ${{ failure() }}
60+
run: |
61+
mkdir -p /tmp/core_dumps
62+
ls -lh /tmp
63+
cp core.* *.hs /tmp/core_dumps/ 2> /dev/null || true
64+
cp ./core/*.log /tmp/core_dumps/ 2> /dev/null || true
65+
cp -r /tmp/hsperfdata* /tmp/*.hprof /tmp/core_dumps/ 2> /dev/null || true
66+
cp repo/core/core/* /tmp/core_dumps/ 2> /dev/null || true
67+
68+
- name: Upload core dumps
69+
if: ${{ failure() }}
70+
uses: actions/upload-artifact@v2
71+
with:
72+
name: core-dumps
73+
path: /tmp/core_dumps
74+
75+
docs:
76+
runs-on: ubuntu-latest
77+
container:
78+
image: s22s/circleci-openjdk-conda-gdal:b8e30ee
79+
80+
steps:
81+
- uses: actions/checkout@v2
82+
with:
83+
fetch-depth: 0
84+
- uses: coursier/cache-action@v6
85+
- uses: olafurpg/setup-scala@v13
86+
with:
87+
java-version: [email protected]
88+
89+
- name: Set up Python 3.8
90+
uses: actions/setup-python@v2
91+
with:
92+
python-version: 3.8
93+
94+
- name: Install Conda dependencies
95+
run: |
96+
# $CONDA is an environment variable pointing to the root of the miniconda directory
97+
$CONDA/bin/conda install -c conda-forge --yes --file pyrasterframes/src/main/python/requirements-condaforge.txt
98+
99+
- run: ulimit -c unlimited -S
100+
101+
- name: Build documentation
102+
run: sbt makeSite
103+
104+
- name: Collect artifacts
105+
if: ${{ failure() }}
106+
run: |
107+
mkdir -p /tmp/core_dumps
108+
cp core.* *.hs /tmp/core_dumps 2> /dev/null || true
109+
mkdir -p /tmp/markdown
110+
cp pyrasterframes/target/python/docs/*.md /tmp/markdown 2> /dev/null || true
111+
112+
- name: Upload core dumps
113+
if: ${{ failure() }}
114+
uses: actions/upload-artifact@v2
115+
with:
116+
name: core-dumps
117+
path: /tmp/core_dumps
118+
119+
- name: Upload markdown
120+
if: ${{ failure() }}
121+
uses: actions/upload-artifact@v2
122+
with:
123+
name: markdown
124+
path: /tmp/markdown
125+
126+
- name: Upload rf-site
127+
if: ${{ failure() }}
128+
uses: actions/upload-artifact@v2
129+
with:
130+
name: rf-site
131+
path: docs/target/site

0 commit comments

Comments
 (0)