generated from duckdb/extension-template
-
Notifications
You must be signed in to change notification settings - Fork 8
153 lines (130 loc) · 4 KB
/
ExtensionTemplate.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
#
# NOTE: this workflow is for testing the extension template itself, feel free to delete this file in your own repo.
#
name: Extension Template
on: [push, pull_request,repository_dispatch]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }}
cancel-in-progress: true
jobs:
linux:
name: Linux Extensions
if: ${{ vars.RUN_RENAME_TEST == 'true' }}
runs-on: ubuntu-latest
container: ubuntu:16.04
strategy:
matrix:
# Add commits/tags to build against other DuckDB versions
duckdb_version: [ 'v0.8.1' ]
env:
GEN: ninja
defaults:
run:
shell: bash
steps:
- name: Install required ubuntu packages
run: |
apt-get update -y -qq
apt-get install -y -qq software-properties-common
add-apt-repository ppa:git-core/ppa
apt-get update -y -qq
apt-get install -y -qq ninja-build make gcc-multilib g++-multilib libssl-dev wget openjdk-8-jdk zip maven unixodbc-dev libc6-dev-i386 lib32readline6-dev libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip build-essential checkinstall libffi-dev curl libz-dev openssh-client
- name: Install Git 2.18.5
run: |
wget https://github.com/git/git/archive/refs/tags/v2.18.5.tar.gz
tar xvf v2.18.5.tar.gz
cd git-2.18.5
make
make prefix=/usr install
git --version
- uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: 'true'
- name: Checkout DuckDB to version
if: ${{ matrix.duckdb_version != '<submodule_version>'}}
run: |
cd duckdb-pgq
git checkout ${{ matrix.duckdb_version }}
- uses: ./duckdb-pgq/.github/actions/ubuntu_16_setup
- name: Rename extension
run: |
python3 scripts/set_extension_name.py testext
- name: Build
run: |
make
- name: Test
run: |
make test
macos:
name: MacOS
if: ${{ vars.RUN_RENAME_TEST == 'true' }}
runs-on: macos-latest
strategy:
matrix:
# Add commits/tags to build against other DuckDB versions
duckdb_version: [ 'v0.8.1' ]
env:
OSX_BUILD_UNIVERSAL: 1
GEN: ninja
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: 'true'
- name: Install Ninja
run: brew install ninja
- uses: actions/setup-python@v2
with:
python-version: '3.7'
- name: Checkout DuckDB to version
if: ${{ matrix.duckdb_version != '<submodule_version>'}}
run: |
cd duckdb-pgq
git checkout ${{ matrix.duckdb_version }}
- name: Rename extension
run: |
python scripts/set_extension_name.py testext
- name: Build
run: |
make
- name: Test
run: |
make test
windows:
name: Windows Extensions (x64)
if: ${{ vars.RUN_RENAME_TEST == 'true' }}
runs-on: windows-latest
strategy:
matrix:
# Add commits/tags to build against other DuckDB versions
duckdb_version: [ 'v0.8.1' ]
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: 'true'
- uses: actions/setup-python@v2
with:
python-version: '3.7'
- name: Checkout DuckDB to version
# Add commits/tags to build against other DuckDB versions
if: ${{ matrix.duckdb_version != '<submodule_version>'}}
run: |
cd duckdb-pgq
git checkout ${{ matrix.duckdb_version }}
- name: Rename extension
run: |
python scripts/set_extension_name.py testext
- name: Build
run: |
make
- name: Build extension
run: |
build/release/test/Release/unittest.exe