#26 allow connecting through http server (#28) #84
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: Windows | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| release: | |
| types: [published] | |
| env: | |
| ARTIFACTORY_ACCESS_TOKEN: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }} | |
| build_dir: "Build/Release" | |
| package: EphysSocket-windows | |
| jobs: | |
| check-semver: | |
| runs-on: ubuntu-22.04 | |
| if: github.event_name != 'release' | |
| steps: | |
| - name: Checkout current version | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Find previous release | |
| id: previous-release | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| echo "RELEASE_NAME=$(gh release list -L 1 --json tagName -q .[0].tagName)" >> $GITHUB_OUTPUT | |
| - name: Verify release name | |
| id: verify-release | |
| if: steps.previous-release.outputs.RELEASE_NAME == '' | |
| run: | | |
| echo "No previous releases found. Skipping the semver check." | |
| exit 0 | |
| - name: Checkout last release version | |
| if: steps.previous-release.outputs.RELEASE_NAME != '' | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ steps.previous-release.outputs.RELEASE_NAME }} | |
| path: last-release | |
| sparse-checkout: | | |
| Source/OpenEphysLib.cpp | |
| sparse-checkout-cone-mode: false | |
| - name: Extract Versions | |
| if: steps.previous-release.outputs.RELEASE_NAME != '' | |
| id: extract-versions | |
| run: | | |
| ls -la | |
| ls last-release -la | |
| ls last-release/Source -la | |
| cat ./last-release/Source/OpenEphysLib.cpp | |
| echo "CURRENT_VERSION=$(cat ./Source/OpenEphysLib.cpp | grep -w -e 'info->libVersion' | grep -Eo "[0-9]+.[0-9]+.[0-9]+")" >> $GITHUB_OUTPUT | |
| echo "PREVIOUS_VERSION=$(cat ./last-release/Source/OpenEphysLib.cpp | grep -w -e 'info->libVersion' | grep -Eo "[0-9]+.[0-9]+.[0-9]+")" >> $GITHUB_OUTPUT | |
| - name: Setup Python | |
| if: steps.previous-release.outputs.RELEASE_NAME != '' | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.10.12" | |
| - name: Install semver | |
| if: steps.previous-release.outputs.RELEASE_NAME != '' | |
| run: python -m pip install semver | |
| - name: Compare Versions | |
| if: steps.previous-release.outputs.RELEASE_NAME != '' | |
| run: | | |
| version_current=${{ steps.extract-versions.outputs.CURRENT_VERSION }} | |
| version_release=${{ steps.extract-versions.outputs.PREVIOUS_VERSION }} | |
| echo "Current Version: $version_current" | |
| echo "Release Version: $version_release" | |
| if [ ! $(python -c "import semver; print(semver.compare(\"$version_current\", \"$version_release\"))") == 1 ]; then | |
| echo "::error title=Invalid version number::Version number must be increased" | |
| exit 1 | |
| fi | |
| build-windows: | |
| needs: [check-semver] | |
| if: always() && !failure() && !cancelled() | |
| runs-on: [windows-latest] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: setup | |
| run: | | |
| cd ../.. | |
| git clone https://github.com/open-ephys/plugin-GUI.git --branch main | |
| cd plugin-GUI/Build | |
| cmake -G "Visual Studio 17 2022" -A x64 .. | |
| mkdir Release && cd Release | |
| curl -L https://openephys.jfrog.io/artifactory/GUI-binaries/Libraries/open-ephys-lib-v1.0.0.zip --output open-ephys-lib.zip | |
| unzip open-ephys-lib.zip | |
| shell: bash | |
| - name: configure | |
| run: | | |
| cd Build | |
| cmake -G "Visual Studio 17 2022" -A x64 .. | |
| shell: bash | |
| - name: Add msbuild to PATH | |
| uses: microsoft/setup-msbuild@v2 | |
| - name: build-plugin | |
| id: build | |
| run: | | |
| cd Build | |
| msbuild INSTALL.vcxproj -p:Configuration=Release -p:Platform=x64 | |
| shell: cmd | |
| - name: Collect artifact | |
| uses: actions/upload-artifact@v4 | |
| if: steps.build.outcome == 'success' && always() | |
| with: | |
| name: Artifact | |
| if-no-files-found: error | |
| path: ${{ env.build_dir }} | |
| deploy-windows: | |
| needs: [build-windows] | |
| runs-on: windows-latest | |
| if: github.event_name == 'release' && always() && !failure() && !cancelled() | |
| steps: | |
| - name: Download build folder | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: Artifact | |
| path: ${{ env.build_dir }} | |
| - name: deploy | |
| run: | | |
| plugin_api=$(grep -rnw ../../plugin-GUI/Source -e '#define PLUGIN_API_VER' | grep -Eo "[0-9]*" | tail -1) | |
| tag=$(grep -w Source/OpenEphysLib.cpp -e 'info->libVersion' | grep -Eo "[0-9]+.[0-9]+.[0-9]+") | |
| new_plugin_ver=$tag-API$plugin_api | |
| mkdir plugins | |
| cp $build_dir/*.dll plugins | |
| zipfile=${package}_${new_plugin_ver}.zip | |
| powershell Compress-Archive -Path "plugins" -DestinationPath ${zipfile} | |
| curl -H "X-JFrog-Art-Api:$ARTIFACTORY_ACCESS_TOKEN" -T $zipfile "https://openephys.jfrog.io/artifactory/EphysSocket-plugin/windows/$zipfile" | |
| shell: bash |