|
9 | 9 | - "src/**" |
10 | 10 | - "Makefile" |
11 | 11 | - "config.sh" |
| 12 | + tags: ['v*'] |
12 | 13 |
|
13 | 14 | pull_request: |
14 | 15 | paths: |
|
33 | 34 | PDVERSION: pd-0.56-2 |
34 | 35 |
|
35 | 36 | steps: |
36 | | - - uses: actions/checkout@v5 |
| 37 | + - uses: actions/checkout@v6 |
| 38 | + |
| 39 | + - name: setup deken |
| 40 | + uses: ./.github/actions/setup-deken |
37 | 41 |
|
38 | 42 | # ---- platform-specific setup ---- |
39 | 43 | - name: setup pd (unix) |
@@ -65,66 +69,44 @@ jobs: |
65 | 69 | run: make pdbinpath="$PDVERSION/bin" PDINCLUDEDIR="$PDVERSION/src" CFLAGS=-march=x86-64 |
66 | 70 |
|
67 | 71 | # ---- package ---- |
68 | | - - name: package (unix) |
69 | | - if: matrix.os != 'windows-latest' |
70 | | - run: make install PDLIBDIR="${{ matrix.os }}" |
71 | | - - name: package (windows) |
72 | | - if: matrix.os == 'windows-latest' |
| 72 | + - name: package library |
73 | 73 | run: | |
74 | 74 | bash scripts/package_lib.sh |
75 | 75 | ls -la |
76 | 76 | mkdir -p "${{ matrix.os }}" |
77 | | - mv fd_lib "${{ matrix.os }}/" |
| 77 | + cp -r fd_lib "${{ matrix.os }}/" |
| 78 | +
|
| 79 | + - name: create deken packages |
| 80 | + run: | |
| 81 | + mkdir -p build |
| 82 | + for dir in fd_lib-*; do |
| 83 | + ./deken package --output-dir ./build --no-sign-gpg --name fd_lib --version "${{ github.ref_name }}" "$dir" |
| 84 | + done |
78 | 85 |
|
79 | 86 | - name: upload artifact |
80 | | - uses: actions/upload-artifact@v5 |
| 87 | + uses: actions/upload-artifact@v6 |
81 | 88 | with: |
82 | | - name: fd_lib-${{ matrix.os }} |
83 | | - path: ${{ matrix.os }}/fd_lib |
| 89 | + name: "fd_lib-${{ github.ref_name }}-build" |
| 90 | + path: ./build |
| 91 | + if-no-files-found: error |
| 92 | + compression-level: 0 |
84 | 93 |
|
85 | 94 | publish: |
86 | 95 | runs-on: ubuntu-latest |
87 | 96 | needs: build |
88 | | - if: github.event_name == 'push' && github.ref == 'refs/heads/main' |
| 97 | + if: startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' |
89 | 98 |
|
90 | 99 | steps: |
91 | | - - name: download all artifacts |
92 | | - uses: actions/download-artifact@v5 |
93 | | - |
94 | | - - name: install deken |
95 | | - run: | |
96 | | - curl -L https://raw.githubusercontent.com/pure-data/deken/main/developer/deken -o deken |
97 | | - chmod +x deken |
98 | | -
|
99 | | - - name: list files |
100 | | - run: ls -R |
| 100 | + - name: setup deken |
| 101 | + uses: ./.github/actions/setup-deken |
101 | 102 |
|
102 | | - - name: import gpg key |
103 | | - run: | |
104 | | - echo "$GPG_PRIVATE_KEY" | gpg --batch --import |
105 | | -
|
106 | | - # trust the key (required in CI) |
107 | | - KEY_ID=$(gpg --list-secret-keys --with-colons | awk -F: '/^sec/ {print $5; exit}') |
108 | | - echo "5\ny\n" | gpg --command-fd 0 --batch --yes --edit-key $KEY_ID trust |
109 | | - env: |
110 | | - GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} |
111 | | - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} |
112 | | - |
113 | | - - name: configure gpg |
114 | | - run: | |
115 | | - mkdir -p ~/.gnupg |
116 | | - chmod 700 ~/.gnupg |
117 | | - echo "use-agent" >> ~/.gnupg/gpg.conf |
118 | | - echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf |
119 | | -
|
120 | | - - name: package all |
121 | | - run: | |
122 | | - for dir in fd_lib-*; do |
123 | | - ./deken package --version "${GITHUB_REF_NAME:-main}" "$dir" |
124 | | - done |
| 103 | + - name: download all artifacts |
| 104 | + uses: actions/download-artifact@v8 |
| 105 | + with: |
| 106 | + skip-decompress: true |
125 | 107 |
|
126 | 108 | - name: upload all to deken |
127 | 109 | env: |
128 | 110 | deken_username: ${{ secrets.DEKEN_USERNAME }} |
129 | 111 | deken_password: ${{ secrets.DEKEN_PASSWORD }} |
130 | | - run: ./deken upload *.dek |
| 112 | + run: ./deken upload **/*.dek |
0 commit comments