|
19 | 19 | state: present
|
20 | 20 | update_cache: yes
|
21 | 21 |
|
22 |
| -- name: plrust - install Rust |
| 22 | +- name: plrust - install plrust |
| 23 | + ansible.builtin.apt: |
| 24 | + deb: "https://github.com/tcdi/plrust/releases/download/v{{ plrust_release }/plrust-trusted-{ plrust_release }_{{ plrust_language_version }}-debian-pg{{ postgresql_major }}-{ platform }}.deb" |
| 25 | + |
| 26 | +- name: plrust - install rust |
| 27 | + become: yes |
| 28 | + become_user: postgres |
| 29 | + become_method: su |
23 | 30 | shell: |
|
24 | 31 | wget -qO- https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain={{ plrust_language_version }}
|
25 | 32 | echo 'source "$HOME/.cargo/env"' >> $HOME/.bashrc
|
26 | 33 | args:
|
27 | 34 | creates: "$HOME/.cargo"
|
28 | 35 |
|
29 |
| -- name: plrust - install Rust toolchain and set default |
| 36 | +- name: plrust - install rust toolchain and set default |
| 37 | + become: yes |
| 38 | + become_user: postgres |
| 39 | + become_method: su |
30 | 40 | shell: |
|
31 | 41 | source $HOME/.cargo/env
|
32 | 42 | rustup toolchain install {{ plrust_language_version }}
|
33 | 43 | rustup default {{ plrust_language_version }}
|
34 | 44 | args:
|
35 | 45 | executable: /bin/bash
|
36 | 46 |
|
37 |
| -- name: plrust - add components and target |
| 47 | +- name: plrust - add rust components and target |
| 48 | + become: yes |
| 49 | + become_user: postgres |
| 50 | + become_method: su |
38 | 51 | shell: |
|
39 | 52 | source $HOME/.cargo/env
|
40 | 53 | rustup component add llvm-tools-preview rustc-dev
|
41 | 54 | rustup target install x86_64-unknown-linux-gnu
|
42 |
| - args: |
43 |
| - executable: /bin/bash |
44 |
| - |
45 |
| -- name: plrust - install cargo-pgrx and initialize |
46 |
| - shell: | |
47 |
| - source $HOME/.cargo/env |
48 |
| - cargo install cargo-pgrx --locked |
49 |
| - cargo pgrx init --pg{{ postgresql_major }} /usr/bin/pg_config |
50 |
| - args: |
51 |
| - executable: /bin/bash |
52 |
| - |
53 |
| -- name: plrust - clone plrust |
54 |
| - git: |
55 |
| - repo: https://github.com/tcdi/plrust |
56 |
| - dest: /tmp/plrust |
57 |
| - version: v{{ plrust_release }} |
58 |
| - |
59 |
| - |
60 |
| -- name: plrust - move plrustc binary to .cargo/bin |
61 |
| - command: |
62 |
| - cmd: mv "/tmp/plrust/plrust/build/bin/plrustc" "$HOME/.cargo/bin/" |
63 |
| - warn: false |
64 |
| - |
65 |
| -- name: plrust - build plrust |
66 |
| - shell: | |
67 |
| - source $HOME/.cargo/env |
68 |
| - export PG_VER="{{ postgresql_major }}" |
69 |
| - |
70 |
| - if [[ "{{ platform }}" == "arm64" ]]; then |
71 |
| - STD_TARGETS="aarch64-postgres-linux-gnu" |
72 |
| - elif [[ "{{ platform }}" == "amd64" ]]; then |
73 |
| - STD_TARGETS="amd64-postgres-linux-gnu" |
74 |
| - else |
75 |
| - echo "Unsupported platform: $platform" |
76 |
| - exit 1 |
77 |
| - fi |
78 |
| - |
79 |
| - ./build |
80 |
| - args: |
81 |
| - executable: /bin/bash |
82 |
| - chdir: "/tmp/plrust/plrust" |
83 |
| - |
84 |
| -- name: plrust - install plrust |
85 |
| - shell: | |
86 |
| - source $HOME/.cargo/env |
87 |
| - cargo pgrx install --release --features trusted -c /usr/bin/pg_config |
| 55 | + rustup target install aarch64-unknown-linux-gnu |
88 | 56 | args:
|
89 | 57 | executable: /bin/bash
|
0 commit comments