Fixed % in path bug. (#33) #57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| 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 |