11name : Build and Publish TypeID Extension
22
3+ permissions :
4+ contents : write
5+
36on :
47 push :
58 tags :
1215jobs :
1316 build-and-publish :
1417 strategy :
18+ fail-fast : false # We want all of them to run, even if one fails
1519 matrix :
16- pg_version : [11, 12, 13, 14, 15, 16]
20+ pg_version : [12, 13, 14, 15, 16]
1721 os : [ubuntu-latest, macos-latest]
1822 arch : [amd64, arm64]
1923 exclude :
2024 - os : macos-latest
21- arch : arm64
25+ arch : amd64
2226
2327 runs-on : ${{ matrix.os }}
2428
@@ -40,26 +44,46 @@ jobs:
4044 sudo apt-get update -y -qq --fix-missing
4145 sudo apt-get install -y postgresql-${{ matrix.pg_version }} postgresql-server-dev-${{ matrix.pg_version }}
4246
47+ sudo chmod a+rwx `/usr/lib/postgresql/${{ matrix.pg_version }}/bin/pg_config --pkglibdir` `/usr/lib/postgresql/${{ matrix.pg_version }}/bin/pg_config --sharedir`/extension /var/run/postgresql/
48+
4349 - name : Install PostgreSQL (macOS)
4450 if : runner.os == 'macOS'
4551 run : |
4652 brew install postgresql@${{ matrix.pg_version }}
4753 echo "/usr/local/opt/postgresql@${{ matrix.pg_version }}/bin" >> $GITHUB_PATH
4854
49- - name : Build Extension
55+ - name : Install cargo-pgrx
5056 run : |
51- cargo pgrx init
52- cargo pgrx package --pg-config /usr/bin/pg_config-${{ matrix.pg_version }}
57+ if [ "${{ runner.os }}" == "Linux" ]; then
58+ PG_CONFIG_PATH="/usr/lib/postgresql/${{ matrix.pg_version }}/bin/pg_config"
59+ else
60+ PG_CONFIG_PATH="/opt/homebrew/opt/postgresql@${{ matrix.pg_version }}/bin/pg_config"
61+ fi
62+ PGRX_VERSION=$(cargo metadata --format-version 1 | jq -r '.packages[]|select(.name=="pgrx")|.version')
63+ cargo install --locked --version=$PGRX_VERSION cargo-pgrx --debug --force
64+ cargo pgrx init --pg${{ matrix.pg_version }} $PG_CONFIG_PATH
65+
66+ - name : Build
67+ run : |
68+ if [ "${{ runner.os }}" == "Linux" ]; then
69+ PG_CONFIG_PATH="/usr/lib/postgresql/${{ matrix.pg_version }}/bin/pg_config"
70+ else
71+ PG_CONFIG_PATH="/opt/homebrew/opt/postgresql@${{ matrix.pg_version }}/bin/pg_config"
72+ fi
73+ cargo pgrx package --features pg${{ matrix.pg_version }} --pg-config $PG_CONFIG_PATH
74+
75+ - name : Set lowercase OS name
76+ run : echo "LOWERCASE_OS=$(echo ${{ runner.os }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
5377
5478 - name : Package Extension
5579 run : |
5680 mkdir -p release
57- tar -czvf release/${{ env.EXTENSION_NAME }}-pg${{ matrix.pg_version }}-${{ runner.os }}-${{ matrix.arch }}.tar.gz -C target/release/${{ env.EXTENSION_NAME }}-pg${{ matrix.pg_version }} .
81+ tar -czvf release/${{ env.EXTENSION_NAME }}-pg${{ matrix.pg_version }}-${{ env.LOWERCASE_OS }}-${{ matrix.arch }}.tar.gz -C target/release/${{ env.EXTENSION_NAME }}-pg${{ matrix.pg_version }} .
5882
5983 - name : Upload Release Asset
6084 uses : softprops/action-gh-release@v1
6185 with :
62- files : release/${{ env.EXTENSION_NAME }}-pg${{ matrix.pg_version }}-${{ runner.os }}-${{ matrix.arch }}.tar.gz
86+ files : release/${{ env.EXTENSION_NAME }}-pg${{ matrix.pg_version }}-${{ env.LOWERCASE_OS }}-${{ matrix.arch }}.tar.gz
6387
6488 build-and-push-docker :
6589 needs : build-and-publish
0 commit comments