diff --git a/.github/workflows/nsis.yml b/.github/workflows/nsis.yml new file mode 100644 index 0000000..4d2e232 --- /dev/null +++ b/.github/workflows/nsis.yml @@ -0,0 +1,76 @@ +name: nsis + +on: + workflow_run: + workflows: [ Build ] + types: [ completed ] + workflow_dispatch: + +jobs: + config: + if: ${{ github.event.workflow_run.conclusion == 'success' }} + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.files.outputs.matrix }} + branch: ${{ steps.branch-ref.outputs.name }} + steps: + - uses: actions/checkout@master + with: + ref: ${{ github.event.workflow_run.head_branch }} + + - name: Return Branch + id: branch-ref + run: echo "name=${{ github.event.workflow_run.head_branch }}" >> $GITHUB_OUTPUT + + - name: Get Script Files + id: list-files + uses: Rishabh510/Path-lister-action@master + with: + path: installers/ + type: .nsi + + - name: Return Script Files + id: files + run: echo "matrix=$(echo "${{ steps.list-files.outputs.paths }}" | sed 's/\//\\/g' | jq --raw-input --compact-output '[splits(" ") | select(length > 0)]')" >> $GITHUB_OUTPUT + + make-installer: + runs-on: windows-latest + needs: [ config ] + strategy: + fail-fast: false + matrix: + file: ${{ fromJson(needs.config.outputs.matrix) }} + steps: + - uses: actions/checkout@master + with: + ref: ${{ github.event.workflow_run.head_branch }} + + - name: Download artifact + uses: dawidd6/action-download-artifact@v2 + with: + workflow: ${{ github.event.workflow_run.workflow_id }} + workflow_conclusion: success + name: hobovr-build-windows-latest + path: ${{ github.workspace }} + + - name: Create nsis installer + id: create-installer + shell: powershell + run: | + "$CONDA\bin\conda.bat execute ${{ matrix.file }}" + working-directory: ${{ github.workspace }}\installers\win + + - name: Identify Compiled Installer + id: find-installer + shell: powershell + run: | + $exec_file=sed -rn 's/OutFile \"(.*)\"$/\1/p' ./${{ matrix.file }} + echo "executable=$exec_file" >> $Env:GITHUB_OUTPUT + working-directory: ${{ github.workspace }} + + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: ${{ steps.find-installer.outputs.executable }} + path: | + ${{ github.workspace }} diff --git a/installers/win/hobovr_installer.nsi b/installers/win/hobovr_installer.nsi index 1d6d83d..32db679 100644 --- a/installers/win/hobovr_installer.nsi +++ b/installers/win/hobovr_installer.nsi @@ -1,9 +1,21 @@ -# plugins required: -# Inetc: https://nsis.sourceforge.io/Inetc_plug-in -# Nsisunz: https://nsis.sourceforge.io/Nsisunz_plug-in -# ExecDos: https://nsis.sourceforge.io/ExecDos_plug-in -# Locate: https://nsis.sourceforge.io/Locate_plugin -# Download the zip files from each of those and copy the contents of the plugin.zip/Plugins directory to program files/NSIS/plugins +# conda execute +# env: +# - nsis 3.* +# - AccessControl +# - InetC +# - Nsisunz +# - ExecDos +# - Locate +# - Registry +# - nsDialogs +# - winmessages +# - MUI2 +# - Logiclib +# - x64 +# channels: +# - nsis +# run_with: makensis + !include nsDialogs.nsh !include MUI2.nsh !include "winmessages.nsh"