Skip to content

Fixed % in path bug. (#33) #57

Fixed % in path bug. (#33)

Fixed % in path bug. (#33) #57

Workflow file for this run

---
name: Deploy
on:
push:
branches:
- main
- dev
pull_request:
branches:
- main
- dev
jobs:
windows-x64-build:
runs-on: windows-latest
defaults:
run:
shell: "msys2 {0}"
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: mingw64
install: mingw-w64-x86_64-toolchain
path-type: inherit
- name: Set up Doxygen
run: pacman --noconfirm -S mingw-w64-x86_64-doxygen
- id: install-secret-key
name: Install gpg secret key
run: |
cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
- uses: actions/checkout@v6
- name: Set up publication to Maven Central
uses: actions/setup-java@v5
with:
java-version: '8'
architecture: x64
server-id: central
server-username: SONATYPE_USERNAME
server-password: SONATYPE_PASSWORD
distribution: zulu
cache: maven
- name: Build/test code with Maven
run: |
which mvn
mvn --activate-profiles ffsampledsp-x86_64-win --batch-mode install --file pom.xml
- run: mkdir nativelibs && cp ffsampledsp-x86_64-win/target/*.dll nativelibs
- uses: actions/upload-artifact@v7
with:
name: nativelibs-x64-win
path: nativelibs
retention-days: 1
- name: Get project version
id: get_version
run: echo "version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout --file pom.xml)" >> $GITHUB_OUTPUT
- id: publish-native-lib-to-central
name: Publish to Central Repository
if: ${{ !endsWith(steps.get_version.outputs.version, 'SNAPSHOT') }}
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
run: |
mvn \
--projects ffsampledsp-x86_64-win \
--no-transfer-progress \
--batch-mode \
-Dcentral.autoPublish=${{ github.ref == 'refs/heads/main' && 'true' || 'false' }} \
--activate-profiles release,ffsampledsp-x86_64-win \
--file pom.xml \
deploy
windows-x86-build:
runs-on: windows-latest
defaults:
run:
shell: "msys2 {0}"
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: mingw32
install: mingw-w64-i686-toolchain
path-type: inherit
- name: Set up Doxygen
run: pacman --noconfirm -S mingw-w64-i686-doxygen
- id: install-secret-key
name: Install gpg secret key
run: |
cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
- uses: actions/checkout@v6
- name: Set up publication to Maven Central
uses: actions/setup-java@v5
with:
java-version: '8'
architecture: x86
server-id: central
server-username: SONATYPE_USERNAME
server-password: SONATYPE_PASSWORD
distribution: zulu
cache: maven
- name: Build/test code with Maven
run: mvn --activate-profiles ffsampledsp-i386-win --no-transfer-progress --batch-mode install --file pom.xml
- run: mkdir nativelibs && cp ffsampledsp-i386-win/target/*.dll nativelibs
- uses: actions/upload-artifact@v7
with:
name: nativelibs-x86-win
path: nativelibs
retention-days: 1
- name: Get project version
id: get_version
run: echo "version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout --file pom.xml)" >> $GITHUB_OUTPUT
- id: publish-native-lib-to-central
name: Publish to Central Repository
if: ${{ !endsWith(steps.get_version.outputs.version, 'SNAPSHOT') }}
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
run: |
mvn \
--projects ffsampledsp-i386-win \
--no-transfer-progress \
--batch-mode \
-Dcentral.autoPublish=${{ github.ref == 'refs/heads/main' && 'true' || 'false' }} \
--activate-profiles release,ffsampledsp-i386-win \
--file pom.xml \
deploy
linux-x64-build:
runs-on: ubuntu-latest
steps:
- name: Set up Doxygen and native build dependencies
run: sudo apt-get install -y doxygen libbz2-dev zlib1g-dev
- uses: actions/checkout@v6
- id: install-secret-key
name: Install gpg secret key
run: |
cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
- name: Set up publication to Maven Central
uses: actions/setup-java@v5
with:
java-version: '8'
architecture: x64
server-id: central
server-username: SONATYPE_USERNAME
server-password: SONATYPE_PASSWORD
distribution: zulu
cache: maven
- name: Build/test code with Maven
run: mvn --activate-profiles ffsampledsp-x86_64-linux --no-transfer-progress --batch-mode install --file pom.xml
- run: mkdir nativelibs && cp ffsampledsp-x86_64-linux/target/*.so nativelibs
- uses: actions/upload-artifact@v7
with:
name: nativelibs-x86-linux
path: nativelibs
retention-days: 1
- name: Get project version
id: get_version
run: echo "version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout --file pom.xml)" >> $GITHUB_OUTPUT
- id: publish-native-lib-to-central
name: Publish to Central Repository
if: ${{ !endsWith(steps.get_version.outputs.version, 'SNAPSHOT') }}
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
run: |
mvn \
--projects ffsampledsp-x86_64-linux \
--no-transfer-progress \
--batch-mode \
-Dcentral.autoPublish=${{ github.ref == 'refs/heads/main' && 'true' || 'false' }} \
--activate-profiles release,ffsampledsp-x86_64-linux \
--file pom.xml \
deploy
linux-aarch64-build:
runs-on: ubuntu-24.04-arm
steps:
- name: Set up Doxygen and native build dependencies
run: sudo apt-get install -y doxygen libbz2-dev zlib1g-dev
- uses: actions/checkout@v6
- id: install-secret-key
name: Install gpg secret key
run: |
cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
- name: Set up publication to Maven Central
uses: actions/setup-java@v5
with:
java-version: '8'
architecture: arm64
server-id: central
server-username: SONATYPE_USERNAME
server-password: SONATYPE_PASSWORD
distribution: zulu
cache: maven
- name: Build/test code with Maven (no tests for now)
run: mvn --activate-profiles ffsampledsp-aarch64-linux --no-transfer-progress --batch-mode install -Dmaven.test.skip=true --file pom.xml
- run: mkdir nativelibs && cp ffsampledsp-aarch64-linux/target/*.so nativelibs
- uses: actions/upload-artifact@v7
with:
name: nativelibs-aarch64-linux
path: nativelibs
retention-days: 1
- name: Get project version
id: get_version
run: echo "version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout --file pom.xml)" >> $GITHUB_OUTPUT
- id: publish-native-lib-to-central
name: Publish to Central Repository
if: ${{ !endsWith(steps.get_version.outputs.version, 'SNAPSHOT') }}
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
run: |
mvn \
--projects ffsampledsp-aarch64-linux \
--no-transfer-progress \
--batch-mode \
-Dcentral.autoPublish=${{ github.ref == 'refs/heads/main' && 'true' || 'false' }} \
--activate-profiles release,ffsampledsp-aarch64-linux \
--file pom.xml \
deploy \
-Dmaven.test.skip=true
macos-aarch64-build:
runs-on: macos-latest
steps:
- name: Set up Doxygen
run: brew install doxygen
- id: install-secret-key
name: Install gpg secret key
run: |
cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
echo "${{ secrets.MACOS_CERTIFICATE }}" | base64 --decode > certificate.p12
security create-keychain -p my_secret build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p my_secret build.keychain
security import certificate.p12 -k build.keychain -P "${{ secrets.MACOS_CERTIFICATE_PWD }}" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k my_secret build.keychain
- uses: actions/checkout@v6
- name: Set up publication to Maven Central
uses: actions/setup-java@v5
with:
java-version: '8'
architecture: arm64
server-id: central
server-username: SONATYPE_USERNAME
server-password: SONATYPE_PASSWORD
distribution: zulu
cache: maven
- name: Build/test code with Maven
run: mvn --activate-profiles ffsampledsp-aarch64-macos,sign --batch-mode install --file pom.xml -Dmaven.test.skip=true
- run: mkdir nativelibs && cp ffsampledsp-aarch64-macos/target/*.dylib nativelibs
- uses: actions/upload-artifact@v7
with:
name: nativelibs-aarch64-macos
path: nativelibs
retention-days: 1
- name: Get project version
id: get_version
run: echo "version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout --file pom.xml)" >> $GITHUB_OUTPUT
- id: publish-to-central
name: Publish to Central Repository
if: ${{ !endsWith(steps.get_version.outputs.version, 'SNAPSHOT') }}
env:
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
run: |
mvn \
--projects ffsampledsp-aarch64-macos \
--no-transfer-progress \
--batch-mode \
-Dcentral.autoPublish=${{ github.ref == 'refs/heads/main' && 'true' || 'false' }} \
--activate-profiles release,sign,ffsampledsp-aarch64-macos \
--file pom.xml \
deploy -Dmaven.test.skip=true
macos-build:
needs:
- windows-x86-build
- windows-x64-build
- macos-aarch64-build
- linux-x64-build
- linux-aarch64-build
runs-on: macos-latest
permissions:
pages: write
id-token: write
steps:
- name: Set up Doxygen
run: brew install doxygen
- id: install-secret-key
name: Install gpg secret key
run: |
cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
echo "${{ secrets.MACOS_CERTIFICATE }}" | base64 --decode > certificate.p12
security create-keychain -p my_secret build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p my_secret build.keychain
security import certificate.p12 -k build.keychain -P "${{ secrets.MACOS_CERTIFICATE_PWD }}" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k my_secret build.keychain
- uses: actions/checkout@v6
- name: Set up publication to Maven Central
uses: actions/setup-java@v5
with:
java-version: '8'
architecture: x64
server-id: central
server-username: SONATYPE_USERNAME
server-password: SONATYPE_PASSWORD
distribution: zulu
cache: maven
- name: create target/classes for ffsampledsp-complete
run: mkdir -p ffsampledsp-complete/target/classes/
- name: Get Linux x86 native lib
uses: actions/download-artifact@v8
with:
name: nativelibs-x86-linux
path: ffsampledsp-complete/target/classes/
- name: Get Linux arm64 native lib
uses: actions/download-artifact@v8
with:
name: nativelibs-aarch64-linux
path: ffsampledsp-complete/target/classes/
- name: Get macOS aarch64 native lib
uses: actions/download-artifact@v8
with:
name: nativelibs-aarch64-macos
path: ffsampledsp-complete/target/classes/
- name: Get Windows x86 native lib
uses: actions/download-artifact@v8
with:
name: nativelibs-x86-win
path: ffsampledsp-complete/target/classes/
- name: Get Windows x64 native lib
uses: actions/download-artifact@v8
with:
name: nativelibs-x64-win
path: ffsampledsp-complete/target/classes/
- name: Get project version
id: get_version
run: echo "version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout --file pom.xml)" >> $GITHUB_OUTPUT
- id: publish-to-central
name: Publish to Central Repository
if: ${{ !endsWith(steps.get_version.outputs.version, 'SNAPSHOT') }}
env:
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
run: |
mvn \
--no-transfer-progress \
--batch-mode \
-Dcentral.autoPublish=${{ github.ref == 'refs/heads/main' && 'true' || 'false' }} \
--activate-profiles release,sign,ffsampledsp-x86_64-macos \
deploy --file pom.xml
- name: Generate Javadocs
if: github.ref == 'refs/heads/main'
run: |
mvn \
--activate-profiles ffsampledsp-x86_64-macos \
--no-transfer-progress \
--batch-mode \
--file pom.xml \
-pl ffsampledsp-complete \
javadoc:javadoc
- name: Upload Javadocs as Pages artifact
if: github.ref == 'refs/heads/main'
uses: actions/upload-pages-artifact@v3
with:
path: ffsampledsp-complete/target/reports/apidocs/
- name: Deploy to GitHub Pages
if: github.ref == 'refs/heads/main'
uses: actions/deploy-pages@v4
- name: Set up publication to tagtraum
uses: actions/setup-java@v5
with:
java-version: '8'
server-id: tagtraum-site
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
distribution: zulu
cache: maven
- name: Add tagtraum SSH host key
if: github.ref == 'refs/heads/main'
run: |
mkdir -p ~/.ssh
chmod 700 ~/.ssh
ssh-keyscan -H ssh.strato.de >> ~/.ssh/known_hosts
- name: Publish to tagtraum
if: github.ref == 'refs/heads/main'
env:
MAVEN_USERNAME: ${{ secrets.TAGTRAUM_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.TAGTRAUM_PASSWORD }}
run: |
sed -i.bak 's@tagtraum-site</id>@tagtraum-site</id><filePermissions>775</filePermissions><directoryPermissions>775</directoryPermissions>@' $HOME/.m2/settings.xml
mvn --no-transfer-progress \
--batch-mode \
--activate-profiles ffsampledsp-x86_64-macos \
--file pom.xml \
clean install site:site site:deploy