|
8 | 8 | - "v[0-9]+.[0-9]+.[0-9]+" |
9 | 9 | paths-ignore: |
10 | 10 | - "README.md" |
11 | | - workflow_dispatch: |
| 11 | + workflow_dispatch: |
12 | 12 |
|
13 | 13 | jobs: |
14 | 14 | build-test: |
|
25 | 25 | if: github.event_name == 'push' |
26 | 26 | steps: |
27 | 27 | - uses: actions/checkout@v6 |
28 | | - - name: Publish |
29 | | - run: npx @dappnode/dappnodesdk publish patch --dappnode_team_preset |
| 28 | + |
| 29 | + - name: Build package from manifest version |
| 30 | + id: build |
| 31 | + run: | |
| 32 | + npx @dappnode/dappnodesdk build \ |
| 33 | + --provider https://api.ipfs.dappnode.io \ |
| 34 | + --upload_to ipfs \ |
| 35 | + --verbose |
| 36 | + version=$(jq -r .version dappnode_package.json) |
| 37 | + hash=$(jq -r --arg v "$version" '.[$v].hash' releases.json) |
| 38 | + dnp_name=$(jq -r .name dappnode_package.json) |
| 39 | + echo "version=$version" >> "$GITHUB_OUTPUT" |
| 40 | + echo "hash=$hash" >> "$GITHUB_OUTPUT" |
| 41 | + echo "release_dir=build_${dnp_name}_${version}" >> "$GITHUB_OUTPUT" |
| 42 | +
|
| 43 | + - name: Create GitHub pre-release |
| 44 | + run: | |
| 45 | + version="${{ steps.build.outputs.version }}" |
| 46 | + hash="${{ steps.build.outputs.hash }}" |
| 47 | + release_dir="${{ steps.build.outputs.release_dir }}" |
| 48 | + tag="v${version}-${{ github.run_number }}" |
| 49 | +
|
| 50 | + encoded_hash=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$hash', safe=''))") |
| 51 | + install_link="http://my.dappnode/installer/public/${encoded_hash}" |
| 52 | + publish_link="https://dappnode.github.io/sdk-publish/?r=nextcloud.public.dappnode.eth&v=${version}&h=${encoded_hash}" |
| 53 | +
|
| 54 | + printf '%s\n' "$hash" > "${release_dir}/content-hash" |
| 55 | +
|
| 56 | + cat > release_body.md <<EOF |
| 57 | + ## Package versions |
| 58 | +
|
| 59 | + Package | Version | Hash | Install | Publish |
| 60 | + --- | --- | --- | --- | --- |
| 61 | + Nextcloud | ${version} | \`${hash}\` | [:inbox_tray:](${install_link}) | [:mega:](${publish_link}) |
| 62 | + EOF |
| 63 | +
|
| 64 | + mapfile -d '' assets < <(find "$release_dir" -maxdepth 1 -type f \ |
| 65 | + \( -name '*.yml' -o -name '*.yaml' -o -name '*.txz' -o -name 'dappnode_package.json' -o -name 'content-hash' -o -name '*.png' \) \ |
| 66 | + -print0) |
| 67 | +
|
| 68 | + gh release create "$tag" \ |
| 69 | + --prerelease \ |
| 70 | + --generate-notes \ |
| 71 | + --notes-file release_body.md \ |
| 72 | + --target "$GITHUB_SHA" \ |
| 73 | + "${assets[@]}" |
30 | 74 | env: |
31 | | - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
32 | | - DEVELOPER_ADDRESS: "0xB22981bA3FE1De2325935c91a3B717168fB86714" |
| 75 | + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
0 commit comments