CreateRelease #10
This file contains 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: CreateRelease | |
on: | |
#[push, pull_request] #just for test release scripts | |
workflow_dispatch: #manual run | |
inputs: | |
version: | |
description: 'New MeshLab Version' | |
required: true | |
default: 'YYYY.MM' | |
env: | |
QT_VERSION: 5.15.2 | |
jobs: | |
update_ml_version: | |
name: Update ML_VERSION | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Update MeshLab version | |
run : | | |
echo ${{ github.event.inputs.version }} | tr -d '\n'> ML_VERSION | |
- name: commit ML_VERSION change | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
commit_message: Set MeshLab version to ${{ github.event.inputs.version }} | |
meshlab_build: | |
needs: [update_ml_version] | |
name: Build MeshLab | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: ['ubuntu-20.04', 'macos-latest', 'windows-latest'] | |
precision: [single_precision, double_precision] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
ref: main | |
- name: Setup Environment | |
uses: ./.github/actions/0_setup | |
- name: Setup env variables | |
id: envs | |
shell: bash | |
run: | | |
if [ "${{matrix.precision}}" == "double_precision" ]; then | |
echo "artifact_suffix=_double" >> $GITHUB_OUTPUT | |
else | |
echo "artifact_suffix=" >> $GITHUB_OUTPUT | |
fi | |
- name: Build | |
uses: ./.github/actions/1_build | |
with: | |
cache-path: src/external/downloads/* | |
cache-key: external-libraries | |
build-option: ${{matrix.precision}} | |
- name: Deploy | |
uses: ./.github/actions/2_deploy | |
with: | |
mac-certificate: ${{ secrets.MACOS_CERTIFICATE }} | |
mac-certificate-id: ${{ secrets.MACOS_CERT_ID }} | |
mac-certificate-pssw: ${{ secrets.MACOS_CERTIFICATE_PSSW }} | |
mac-notarization-user: ${{ secrets.MACOS_NOTARIZATION_USER }} | |
mac-notarization-team: ${{ secrets.MACOS_NOTARIZATION_TEAM_ID }} | |
mac-notarization-pssw: ${{ secrets.MACOS_NOTARIZATION_PSSW }} | |
win-certificate: ${{ secrets.WIN_CERTIFICATE }} | |
win-certificate-pssw: ${{ secrets.WIN_CERTIFICATE_PSSW }} | |
- name: Upload MeshLab Portable | |
uses: actions/upload-artifact@v3 | |
with: | |
name: MeshLab_${{ runner.os }}_portable${{steps.envs.outputs.artifact_suffix}} | |
path: install/ | |
- name: Upload MeshLab Packages | |
uses: actions/upload-artifact@v3 | |
with: | |
name: MeshLab_${{ runner.os }}_packages${{steps.envs.outputs.artifact_suffix}} | |
path: packages/MeshLab* | |
#after building MeshLab for the three platforms, we create a release in github | |
create_release: | |
name: Create Release | |
needs: [meshlab_build] | |
runs-on: ubuntu-latest | |
steps: | |
#Download Linux Packages | |
- name: Download Linux ZIP | |
uses: actions/download-artifact@v3 | |
with: | |
name: MeshLab_Linux_portable | |
path: meshlab_linux_portable | |
- name: Download Linux ZIP-d | |
uses: actions/download-artifact@v3 | |
with: | |
name: MeshLab_Linux_portable_double | |
path: meshlab_linux_portable_double | |
- name: Download Linux AppImage | |
uses: actions/download-artifact@v3 | |
with: | |
name: MeshLab_Linux_packages | |
path: meshlab_linux_appimage | |
- name: Download Linux AppImage-d | |
uses: actions/download-artifact@v3 | |
with: | |
name: MeshLab_Linux_packages_double | |
path: meshlab_linux_appimage_double | |
- name: Change Permissions | |
run: | | |
chmod +x meshlab_linux_portable/usr/bin/meshlab | |
chmod +x meshlab_linux_portable/AppRun | |
chmod +x meshlab_linux_portable_double/usr/bin/meshlab | |
chmod +x meshlab_linux_portable_double/AppRun | |
- name: Setup env variables | |
id: envs | |
shell: bash | |
run: | | |
#get version of meshlab | |
IFS=' ' #space delimiter | |
STR_VERSION=$(meshlab_linux_portable/usr/bin/meshlab --version) | |
read -a strarr <<< "$STR_VERSION" | |
ML_VERSION=${strarr[1]} #get the meshlab version from the string | |
echo "ml_version=$ML_VERSION" >> $GITHUB_OUTPUT | |
STR_VERSION=$(meshlab_linux_portable_double/usr/bin/meshlab --version) | |
read -a strarrd <<< "$STR_VERSION" | |
ML_VERSION_D=${strarrd[1]} #get the meshlab version from the string | |
echo "ml_version_d=$ML_VERSION_D" >> $GITHUB_OUTPUT | |
- name: Create MeshLab Portable Linux Archive | |
run: | | |
cd meshlab_linux_portable | |
tar -cvzf ../MeshLab${{steps.envs.outputs.ml_version}}-linux.tar.gz * | |
cd ../meshlab_linux_portable_double | |
tar -cvzf ../MeshLab${{steps.envs.outputs.ml_version_d}}-linux.tar.gz * | |
cd .. | |
#Download MacOS Package | |
- name: Download MacOS DMG | |
uses: actions/download-artifact@v3 | |
with: | |
name: MeshLab_macOS_packages | |
path: meshlab_macos_dmg | |
- name: Download MacOS DMG-d | |
uses: actions/download-artifact@v3 | |
with: | |
name: MeshLab_macOS_packages_double | |
path: meshlab_macos_dmg_double | |
#Download Windows Packages | |
- name: Download Windows ZIP | |
uses: actions/download-artifact@v3 | |
with: | |
name: MeshLab_Windows_portable | |
path: meshlab_windows_portable | |
- name: Download Windows ZIP-d | |
uses: actions/download-artifact@v3 | |
with: | |
name: MeshLab_Windows_portable_double | |
path: meshlab_windows_portable_double | |
- name: Download Windows Installer | |
uses: actions/download-artifact@v3 | |
with: | |
name: MeshLab_Windows_packages | |
path: meshlab_windows_installer | |
- name: Download Windows Installer-d | |
uses: actions/download-artifact@v3 | |
with: | |
name: MeshLab_Windows_packages_double | |
path: meshlab_windows_installer_double | |
- name: Create MeshLab Portable Windows Archive | |
run: | | |
cd meshlab_windows_portable | |
zip -r ../MeshLab${{steps.envs.outputs.ml_version}}-windows.zip * | |
cd ../meshlab_windows_portable_double | |
zip -r ../MeshLab${{steps.envs.outputs.ml_version_d}}-windows.zip * | |
cd .. | |
#Create release and upload | |
- name: Create Release | |
uses: "ncipollo/release-action@v1" | |
with: | |
token: "${{ secrets.GITHUB_TOKEN }}" | |
tag: "MeshLab-${{steps.envs.outputs.ml_version}}" | |
name: "MeshLab-${{steps.envs.outputs.ml_version}}" | |
artifacts: | | |
MeshLab${{steps.envs.outputs.ml_version}}-linux.tar.gz | |
MeshLab${{steps.envs.outputs.ml_version_d}}-linux.tar.gz | |
meshlab_linux_appimage/MeshLab${{steps.envs.outputs.ml_version}}-linux.AppImage | |
meshlab_linux_appimage_double/MeshLab${{steps.envs.outputs.ml_version_d}}-linux.AppImage | |
meshlab_macos_dmg/MeshLab${{steps.envs.outputs.ml_version}}-macos.dmg | |
meshlab_macos_dmg_double/MeshLab${{steps.envs.outputs.ml_version_d}}-macos.dmg | |
MeshLab${{steps.envs.outputs.ml_version}}-windows.zip | |
MeshLab${{steps.envs.outputs.ml_version_d}}-windows.zip | |
meshlab_windows_installer/MeshLab${{steps.envs.outputs.ml_version}}-windows.exe | |
meshlab_windows_installer_double/MeshLab${{steps.envs.outputs.ml_version_d}}-windows.exe |