-
Notifications
You must be signed in to change notification settings - Fork 148
106 lines (93 loc) · 3.17 KB
/
Copy pathdeb-packager.yaml
File metadata and controls
106 lines (93 loc) · 3.17 KB
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
name: Deb packager
on:
workflow_dispatch:
inputs:
tag:
description: 'Tag'
required: true
default: ''
TAG_GIT_REF:
description: 'Tag git Ref (leave empty for same as Tag)'
required: false
default: ''
jobs:
packager:
runs-on: ${{ matrix.platform.runs_on }}
strategy:
fail-fast: false
matrix:
pg:
- major: 14
minor: 13
- major: 15
minor: 7
- major: 16
minor: 3
- major: 17
minor: 0
- major: 18
minor: 0
platform:
- type: amd64
runs_on: ubuntu-latest
- type: arm64
runs_on: cloud-image-runner-arm64
env:
PG_SRC_DIR: pgbuild
PG_INSTALL_DIR: postgresql
MAKE_JOBS: 6
PG_CONFIG_PATH: postgresql/bin/pg_config
TAG: ${{ github.event.inputs.tag }}
TAG_DIR: pgvectorscale
TAG_GIT_REF: ${{ github.event.inputs.TAG_GIT_REF == '' && github.event.inputs.tag || github.event.inputs.TAG_GIT_REF}}
steps:
- name: Install package_cloud
run: |
sudo apt-get -qq update
sudo apt-get -qq install gcc g++ make ruby-all-dev
sudo gem install rake --no-doc
sudo gem install rainbow -v 2.2.2 --no-doc
sudo gem install package_cloud --no-doc
- name: Checkout pgvectorscale
uses: actions/checkout@v4
- name: Install Linux Packages
uses: ./.github/actions/install-packages
- name: Install Deb builder specific packages
run: |
sudo apt-get install dpkg-dev debhelper build-essential
- name: Install PostgreSQL ${{ matrix.pg.major }}
uses: ./.github/actions/install-postgres
with:
pg-version: ${{ matrix.pg.major }}.${{ matrix.pg.minor }}
pg-src-dir: ~/${{ env.PG_SRC_DIR }}
pg-install-dir: ~/${{ env.PG_INSTALL_DIR }}
- name: Checkout ${{ env.TAG }}
uses: actions/checkout@v4
with:
repository: timescale/pgvectorscale
ref: '${{ env.TAG_GIT_REF }}'
path: ${{ env.TAG_DIR }}
- name: Install pgrx
uses: ./.github/actions/install-pgrx
with:
pg-install-dir: ~/${{ env.PG_INSTALL_DIR }}
pgrx-version: 0.16.1
- name: Build Deb
id: debbuild
run: |
export PATH=~/${{ env.PG_INSTALL_DIR }}/bin:$PATH
(cd ${{ env.TAG_DIR }} && make package)
bash scripts/package-deb.sh "${{ env.TAG }}" "${PWD}/${{ env.TAG_DIR }}" "$RUNNER_OS" "${{ matrix.pg.major }}"
# Use a GH artifact, then we can make use of the (quite limited) GH API https://docs.github.com/en/rest/actions/artifacts
# The artifact will have a TTL of 90 days
- name: Upload deb as Artifact
uses: actions/upload-artifact@v4
with:
name: pgvectorscale-${{ env.TAG }}-pg${{ matrix.pg.major }}-${{ matrix.platform.type }}
path: pkgdump/pgvectorscale-*${{ env.TAG }}*.deb
- name: Upload to packagecloud
env:
PACKAGECLOUD_TOKEN: ${{ secrets.IO_PACKAGECLOUD_TOKEN }}
run: |
source /etc/os-release
package_cloud push timescale/timescaledb/$ID/$VERSION_CODENAME pkgdump/pgvectorscale-*${{ env.TAG }}*.deb