-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
40 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,13 @@ | ||
env: | ||
NAME: pgrx-uids_postgres | ||
NAME: uids | ||
EXT_NAME: uids | ||
PKG_NAME: pg-uids_postgres | ||
|
||
PKG_NAME: uids | ||
name: Release | ||
|
||
on: | ||
push: | ||
tags: [v*] | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
|
||
jobs: | ||
create-release: | ||
name: Create release | ||
|
@@ -23,23 +19,30 @@ jobs: | |
id: create-release | ||
uses: actions/create-release@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
GITHUB_TOKEN: ${{ github.token }} | ||
with: | ||
tag_name: ${{ github.ref }} | ||
release_name: ${{ github.ref }} | ||
|
||
build-linux-gnu: | ||
name: Build & Release for linux | ||
needs: create-release | ||
runs-on: ubuntu-24.04 | ||
needs: | ||
- create-release | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
postgres: [14, 15, 16] | ||
box: | ||
- runner: ubuntu-22.04 | ||
arch: amd64 | ||
- runner: buildjet-8vcpu-ubuntu-2204-arm | ||
arch: arm64 | ||
runs-on: ${{ matrix.box.runner }} | ||
timeout-minutes: 45 | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
uses: actions/checkout@v3 | ||
- name: Install rust | ||
uses: dtolnay/[email protected] | ||
|
||
- name: Install dependencies | ||
run: | | ||
# Add postgres package repo | ||
|
@@ -51,19 +54,19 @@ jobs: | |
sudo apt-get install -y --no-install-recommends libreadline-dev zlib1g-dev flex bison libxml2-dev libxslt-dev libssl-dev libxml2-utils xsltproc ccache | ||
sudo apt-get install -y --no-install-recommends clang libclang-dev llvm-dev gcc tree | ||
# Install PostgreSQL v16 | ||
sudo apt-get install -y postgresql-16 postgresql-server-dev-16 -y | ||
# Install requested postgres version | ||
sudo apt-get install -y postgresql-${{ matrix.postgres }} postgresql-server-dev-${{ matrix.postgres }} -y | ||
# Ensure installed pg_config is first on path | ||
export PATH=$PATH:/usr/lib/postgresql/16/bin | ||
cargo install cargo-pgrx --version 0.11.4 --locked | ||
cargo pgrx init --pg16=/usr/lib/postgresql/16/bin/pg_config | ||
export PATH=$PATH:/usr/lib/postgresql/${{ matrix.postgres }}/bin | ||
cargo install cargo-pgrx --version 0.11.2 --locked | ||
cargo pgrx init --pg${{ matrix.postgres }}=/usr/lib/postgresql/${{ matrix.postgres }}/bin/pg_config | ||
- name: Build artifacts | ||
run: | | ||
# selects the pgVer from pg_config on path | ||
cargo pgrx package --no-default-features --features pg16 | ||
# https://github.com/tcdi/pgrx/issues/288 | ||
cargo pgrx package --no-default-features --features pg${{ matrix.postgres }} | ||
# Create installable package | ||
mkdir archive | ||
|
@@ -77,13 +80,13 @@ jobs: | |
cp archive/*.sql package/var/lib/postgresql/extension | ||
# symlinks to Copy files into directory structure | ||
mkdir -p package/usr/lib/postgresql/16/lib | ||
cd package/usr/lib/postgresql/16/lib | ||
mkdir -p package/usr/lib/postgresql/${{ matrix.postgres }}/lib | ||
cd package/usr/lib/postgresql/${{ matrix.postgres }}/lib | ||
cp -s ../../lib/*.so . | ||
cd ../../../../../.. | ||
mkdir -p package/usr/share/postgresql/16/extension | ||
cd package/usr/share/postgresql/16/extension | ||
mkdir -p package/usr/share/postgresql/${{ matrix.postgres }}/extension | ||
cd package/usr/share/postgresql/${{ matrix.postgres }}/extension | ||
cp -s ../../../../../var/lib/postgresql/extension/${{ env.EXT_NAME }}.control . | ||
cp -s ../../../../../var/lib/postgresql/extension/${{ env.EXT_NAME }}*.sql . | ||
|
@@ -98,21 +101,20 @@ jobs: | |
touch package/DEBIAN/control | ||
echo 'Package: ${{ env.PKG_NAME }}' >> package/DEBIAN/control | ||
echo 'Version:' ${deb_version} >> package/DEBIAN/control | ||
echo 'Architecture: amd64' >> package/DEBIAN/control | ||
echo 'Maintainer: Spark' >> package/DEBIAN/control | ||
echo 'Description: A PostgreSQL extension for Various IDS' >> package/DEBIAN/control | ||
echo 'Architecture: ${{ matrix.box.arch }}' >> package/DEBIAN/control | ||
echo 'Maintainer: Pavan Sunkara' >> package/DEBIAN/control | ||
echo 'Description: A PostgreSQL extension for ULID' >> package/DEBIAN/control | ||
# Create deb package | ||
sudo chown -R root:root package | ||
sudo chmod -R 00755 package | ||
sudo dpkg-deb -Zxz --build --root-owner-group package | ||
- name: Upload artifacts | ||
uses: actions/upload-release-asset@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
GITHUB_TOKEN: ${{ github.token }} | ||
with: | ||
upload_url: ${{ needs.create-release.outputs.upload_url }} | ||
asset_path: ./package.deb | ||
asset_name: ${{ env.NAME }}-${{ github.ref_name }}-pg16-amd64-linux-gnu.deb | ||
asset_content_type: application/vnd.debian.binary-package | ||
asset_name: ${{ env.NAME }}-${{ github.ref_name }}-pg${{ matrix.postgres }}-${{ matrix.box.arch }}-linux-gnu.deb | ||
asset_content_type: application/vnd.debian.binary-package |