Skip to content

Commit a2cae20

Browse files
committed
Update README with signature verification & release structure
Also clean up build.yml Signed-off-by: Gary Oberbrunner <[email protected]>
1 parent 62585c0 commit a2cae20

File tree

3 files changed

+41
-84
lines changed

3 files changed

+41
-84
lines changed

.github/workflows/build.yml

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,9 @@ jobs:
204204

205205
# Q: should we use uv everywhere?
206206
# Unfortunately astral-sh/setup-uv action doesn't work on CentOS 7, its GLIBC is too old.
207+
# BUT this CI build doesn't work on CentOS 7 anyway, due to recent github changes.
208+
# Keep this uv code in case we'd like to install python and conan with uv, but for now
209+
# it is not used.
207210

208211
- name: Set up uv manually
209212
if: matrix.release_prefix == 'linux-vfx2021'
@@ -337,6 +340,11 @@ jobs:
337340
# should build Support/Plugins too, but those need work
338341
fi
339342
343+
############################################################
344+
# Installation: produce release artifacts
345+
############################################################
346+
347+
340348
- name: Copy includes and libs into release folder for installation
341349
# Dir structure:
342350
# Install/OpenFX
@@ -387,17 +395,12 @@ jobs:
387395
upload-signing-artifacts: false
388396
release-signing-artifacts: false
389397

390-
- run: |
391-
ls -l
392-
393398
- name: Upload header/libs tarball and signatures
394399
uses: actions/upload-artifact@v4
395400
with:
396401
name: "openfx-${{ env.RELEASE_NAME }}"
397402
path: |
398403
openfx-${{ env.RELEASE_NAME }}.tar.gz
399-
openfx-${{ env.RELEASE_NAME }}.tar.gz.sig
400-
openfx-${{ env.RELEASE_NAME }}.tar.gz.crt
401404
openfx-${{ env.RELEASE_NAME }}.tar.gz.sigstore.json
402405
403406
# Now the same, for the plugins
@@ -420,12 +423,4 @@ jobs:
420423
name: "openfx-plugins-${{ env.RELEASE_NAME }}"
421424
path: |
422425
openfx-plugins-${{ env.RELEASE_NAME }}.tar.gz
423-
openfx-plugins-${{ env.RELEASE_NAME }}.tar.gz.sig
424-
openfx-plugins-${{ env.RELEASE_NAME }}.tar.gz.crt
425426
openfx-plugins-${{ env.RELEASE_NAME }}.tar.gz.sigstore.json
426-
427-
# - name: Upload release archive
428-
# # if: github.event_name == 'release'
429-
# env:
430-
# GH_TOKEN: ${{ github.token }}
431-
# run: gh release upload ${TAG} ${OPENFX_TARBALL} ${OPENFX_TARBALL}.sigstore.json

.github/workflows/release-sign.yml

Lines changed: 0 additions & 71 deletions
This file was deleted.

readme.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,36 @@ See instructions in [Documentation/README.md](Documentation/README.md).
6161
- use `git tag -a -s` to sign with the release gpg key
6262
* Push that tag to github, then create the release on github from that tag.
6363
* Publish the release on github; that will run the release publish workflow, creating and uploading the sigstore-signed artifacts.
64+
65+
# Releases
66+
67+
Release bundles are named like `openfx-<OS>-release-<REL>.zip` and `openfx-plugins-<OS>-release-<REL>.zip`.
68+
The `openfx-*` bundles contain all the header files as well as the support libs. They look like this:
69+
70+
```
71+
OpenFX
72+
├── include
73+
│ └── openfx
74+
│ ├── ofxCore.h...
75+
│ ├── HostSupport/*.h
76+
│ └── Support/*.h
77+
└── lib
78+
├── lib*
79+
```
80+
81+
so you can add compiler/linker options `-I.../OpenFX/include` `-LOpenFX/lib` and then in source files `#include "openfx/ofxCore.h"` etc.
82+
83+
The `openfx-plugins-*` bundles contain all the sample plugins for the OS. Copy these into your [plugin install dir](https://openfx.readthedocs.io/en/latest/Reference/ofxPackaging.html#installation-directory-hierarchy) and they should show up in your host application.
84+
85+
## Verifying Release Signatures
86+
87+
We use [`sigstore`](https://github.com/marketplace/actions/gh-action-sigstore-python) to sign our github releases.
88+
Release signatures are created using short-lived certificates, and audit trails are stored online using `rekor.sigstore.com`.
89+
To verify a release artifact (zip file), unpack the zip into a `.tgz` and its associated `.tgz.sigstore.json`, and then use [`cosign`](https://docs.sigstore.dev/cosign/system_config/installation/) to verify the signature like this:
90+
```
91+
cosign verify-blob \
92+
openfx-mac-release-x.y.tar.gz \
93+
--bundle openfx-mac-release-x.y.tar.gz.sigstore.json \
94+
--new-bundle-format \
95+
--certificate-identity-regexp='https://github.com/AcademySoftwareFoundation/openfx/.*' \ --certificate-oidc-issuer='https://token.actions.githubusercontent.com'
96+
```

0 commit comments

Comments
 (0)