env: PYTHON_VERSION: 3.12 GITHUB_TOKEN: ENCRYPTED[!9e497dd40c7819a1ddd425d718f50f539f4e080143e20518fc8398b117632551aae72e2680299a57c2be9f0c15a9d2f7!] # The above token, is a GitHub API Token, that allows us to download RipGrep without concern of API limits # linux_task: # alias: linux # container: # image: node:16-slim # memory: 8G # prepare_script: # - apt-get update # - export DEBIAN_FRONTEND="noninteractive" # - apt-get install -y # ffmpeg # rpm # build-essential # git # libsecret-1-dev # fakeroot # libx11-dev # libxkbfile-dev # libgdk-pixbuf2.0-dev # libgtk-3-dev # libxss-dev # libasound2-dev # libnss3 # xvfb # - git submodule init # - git submodule update # - sed -i -e "s/[0-9]*-dev/`date -u +%Y%m%d%H`/g" package.json # install_script: # - yarn install --ignore-engines || yarn install --ignore-engines # build_script: # - yarn build # - yarn run build:apm # build_binary_script: # - yarn dist || yarn dist # rename_binary_script: # - node script/rename.js "Linux" # binary_artifacts: # path: ./binaries/* # test_script: # - rm -R node_modules/electron; yarn install --check-files # - ./binaries/*AppImage --appimage-extract # - export BINARY_NAME='squashfs-root/pulsar' # - mkdir -p ./tests/videos # - Xvfb -screen 0 1024x768x24+32 :99 & nohup ffmpeg -video_size 1024x768 -f x11grab -i :99.0 ./tests/videos/out.mpg & DISPLAY=:99 PLAYWRIGHT_JUNIT_OUTPUT_NAME=report.xml npx playwright test --reporter=junit,list # always: # videos_artifacts: # path: ./tests/videos/** # junit_artifacts: # path: report.xml # type: text/xml # format: junit arm_linux_task: alias: linux only_if: $CIRRUS_CRON != "" || $CIRRUS_TAG != "" skip: $CIRRUS_CHANGE_IN_REPO == $CIRRUS_LAST_GREEN_CHANGE arm_container: image: node:16-slim memory: 8G env: USE_SYSTEM_FPM: 'true' ROLLING_UPLOAD_TOKEN: ENCRYPTED[b318d12e0d41475229383e74c3a98b3921024096b066d9f535ca42bfe025558eca69d1e0f56413abedcf2d5817615c4c] prepare_script: - apt-get update - export DEBIAN_FRONTEND="noninteractive" - apt-get install -y gnupg2 procps curl ruby ruby-dev rpm build-essential git libsecret-1-dev fakeroot libx11-dev libxkbfile-dev libgdk-pixbuf2.0-dev libgtk-3-dev libxss-dev libasound2-dev libnss3 xvfb - gem install dotenv -v '~> 2.8' - gem install fpm - git submodule init - git submodule update - sed -i -e "s/[0-9]*-dev/`date -u +%Y%m%d%H`/g" package.json install_script: - yarn install --ignore-engines || yarn install --ignore-engines build_script: - yarn build - yarn run build:apm build_binary_script: - yarn dist || yarn dist rename_binary_script: - node script/rename.js "ARM.Linux" binary_artifacts: path: ./binaries/* test_script: - rm -R node_modules/electron; yarn install --check-files - ./binaries/*AppImage --appimage-extract - export BINARY_NAME='squashfs-root/pulsar' - Xvfb :99 & DISPLAY=:99 PLAYWRIGHT_JUNIT_OUTPUT_NAME=report.xml npx playwright test --reporter=junit,list rolling_upload_script: - cd ./script/rolling-release-scripts - npm install - node ./rolling-release-binary-upload.js cirrus always: videos_artifacts: path: ./tests/videos/** junit_artifacts: path: report.xml type: text/xml format: junit silicon_mac_task: alias: mac only_if: $CIRRUS_CRON != "" || $CIRRUS_TAG != "" skip: $CIRRUS_CHANGE_IN_REPO == $CIRRUS_LAST_GREEN_CHANGE macos_instance: image: ghcr.io/cirruslabs/macos-ventura-xcode:latest memory: 8G env: CSC_LINK: ENCRYPTED[0078015a03bb6cfdbd80113ae5bbb6f448fd4bbbc40efd81bf2cb1554373046b475a4d7c77e3e3e82ac1ce2f7e3d2da5] CSC_KEY_PASSWORD: ENCRYPTED[82bb72653d39578035ed1860ab4978703d50bd326d925a146ff08782f987ceb37ac2d8dbace52dec2b0e2ef92debf097] APPLEID: ENCRYPTED[549ce052bd5666dba5245f4180bf93b74ed206fe5e6e7c8f67a8596d3767c1f682b84e347b326ac318c62a07c8844a57] APPLEID_PASSWORD: ENCRYPTED[774c3307fd3b62660ecf5beb8537a24498c76e8d90d7f28e5bc816742fd8954a34ffed13f9aa2d1faf66ce08b4496e6f] TEAM_ID: ENCRYPTED[11f3fedfbaf4aff1859bf6c105f0437ace23d84f5420a2c1cea884fbfa43b115b7834a463516d50cb276d4c4d9128b49] ROLLING_UPLOAD_TOKEN: ENCRYPTED[b318d12e0d41475229383e74c3a98b3921024096b066d9f535ca42bfe025558eca69d1e0f56413abedcf2d5817615c4c] prepare_script: - brew update - brew uninstall node@20 - brew install git python@$PYTHON_VERSION python-setuptools - git submodule init - git submodule update - ln -s /opt/homebrew/bin/python$PYTHON_VERSION /opt/homebrew/bin/python - export PATH="/opt/homebrew/bin:$PATH" - mkdir tj_n && cd tj_n - curl -L https://github.com/tj/n/archive/0ce85771fdff8f4b3e09ade700461b4f58a64444.tar.gz -O - tar xf 0ce85771fdff8f4b3e09ade700461b4f58a64444.tar.gz - sudo bash ./n-0ce85771fdff8f4b3e09ade700461b4f58a64444/bin/n 16 - cd .. - sudo npm install -g yarn - sed -i -e "s/[0-9]*-dev/`date -u +%Y%m%d%H`/g" package.json install_script: - export PATH="/opt/homebrew/bin:$PATH" - yarn install --ignore-engines || yarn install --ignore-engines build_script: - export PATH="/opt/homebrew/bin:$PATH" - yarn build - yarn run build:apm build_binary_script: - export PATH="/opt/homebrew/bin:$PATH" - yarn dist || yarn dist rename_binary_script: - export PATH="/opt/homebrew/bin:$PATH" - node script/rename.js "Silicon.Mac" binary_artifacts: path: ./binaries/* test_script: - export PATH="/opt/homebrew/bin:$PATH" - rm -R node_modules/electron; yarn install --check-files - hdiutil mount binaries/*Pulsar*dmg - export BINARY_NAME=`ls /Volumes/Pulsar*/Pulsar.app/Contents/MacOS/Pulsar` - PLAYWRIGHT_JUNIT_OUTPUT_NAME=report.xml npx playwright test --reporter=junit,list rolling_upload_script: - export PATH="/opt/homebrew/bin:$PATH" - cd ./script/rolling-release-scripts - npm install - node ./rolling-release-binary-upload.js cirrus always: videos_artifacts: path: ./tests/videos/** junit_artifacts: path: report.xml type: text/xml format: junit # intel_mac_task: # alias: mac # macos_instance: # image: ghcr.io/cirruslabs/macos-ventura-xcode:latest # memory: 8G # env: # CSC_LINK: ENCRYPTED[0078015a03bb6cfdbd80113ae5bbb6f448fd4bbbc40efd81bf2cb1554373046b475a4d7c77e3e3e82ac1ce2f7e3d2da5] # CSC_KEY_PASSWORD: ENCRYPTED[82bb72653d39578035ed1860ab4978703d50bd326d925a146ff08782f987ceb37ac2d8dbace52dec2b0e2ef92debf097] # APPLEID: ENCRYPTED[549ce052bd5666dba5245f4180bf93b74ed206fe5e6e7c8f67a8596d3767c1f682b84e347b326ac318c62a07c8844a57] # APPLEID_PASSWORD: ENCRYPTED[774c3307fd3b62660ecf5beb8537a24498c76e8d90d7f28e5bc816742fd8954a34ffed13f9aa2d1faf66ce08b4496e6f] # TEAM_ID: ENCRYPTED[11f3fedfbaf4aff1859bf6c105f0437ace23d84f5420a2c1cea884fbfa43b115b7834a463516d50cb276d4c4d9128b49] # prepare_script: # - sudo rm -rf /Library/Developer/CommandLineTools # - echo A | softwareupdate --install-rosetta # - arch -x86_64 xcode-select --install # - arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" # - export PATH="/usr/local/bin:$PATH" # - arch -x86_64 brew update # - arch -x86_64 brew uninstall node@20 # - arch -x86_64 brew install node@16 git python@$PYTHON_VERSION python-setuptools # - ln -s /usr/local/bin/python$PYTHON_VERSION /usr/local/bin/python # - npm install -g yarn # - git submodule init # - git submodule update # - sed -i -e "s/[0-9]*-dev/`date -u +%Y%m%d%H`/g" package.json # install_script: # - export PATH="/usr/local/bin:$PATH" # - arch -x86_64 npx yarn install --ignore-engines || arch -x86_64 npx yarn install --ignore-engines # build_script: # - export PATH="/usr/local/bin:$PATH" # - arch -x86_64 npx yarn build # - arch -x86_64 yarn run build:apm # build_binary_script: # - export PATH="/usr/local/bin:$PATH" # - arch -x86_64 npx yarn dist || arch -x86_64 npx yarn dist # rename_binary_script: # - export PATH="/usr/local/bin:$PATH" # - node script/rename.js "Intel.Mac" # binary_artifacts: # path: ./binaries/* # test_script: # - export PATH="/usr/local/bin:$PATH" # - rm -R node_modules/electron; yarn install --check-files # - hdiutil mount binaries/*Pulsar*dmg # - export BINARY_NAME=`ls /Volumes/Pulsar*/Pulsar.app/Contents/MacOS/Pulsar` # - PLAYWRIGHT_JUNIT_OUTPUT_NAME=report.xml arch -x86_64 npx playwright test --reporter=junit,list # always: # videos_artifacts: # path: ./tests/videos/** # junit_artifacts: # path: report.xml # type: text/xml # format: junit # windows_task: # alias: windows # timeout_in: 90m # windows_container: # image: cirrusci/windowsservercore:visualstudio2022-2022.06.23 # env: # CIRRUS_SHELL: bash # PATH: C:\Python310\Scripts\;C:\Python310\;%PATH%;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Users\User\AppData\Local\Microsoft\WindowsApps;C:\Users\User\AppData\Roaming\npm;C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\ # prepare_script: # - choco install nodejs --version=16.16.0 -y # - choco install python --version=3.10.3 -y # - choco install git visualstudio2019-workload-vctools -y # - git submodule init # - git submodule update # - npm config set python 'C:\Python310\python.exe' # install_script: # - npx yarn install --ignore-engines # || rm -R node_modules && npx yarn install --ignore-engines # || rm -R node_modules && npx yarn install --ignore-engines # build_script: # - npx yarn build:apm # - npx yarn build || npx yarn build || npx yarn build # build_binary_script: # - sed -i -e "s/[0-9]*-dev/`date -u +%Y%m%d%H`/g" package.json # - npx yarn dist || npx yarn dist || npx yarn dist # rename_binary_script: # - node script/rename.js "Windows" # binary_artifacts: # path: .\binaries\* # test_script: # - mkdir extracted; tar -xf binaries/*zip -C ./extracted/ # - export BINARY_NAME=./extracted/Pulsar.exe # - PLAYWRIGHT_JUNIT_OUTPUT_NAME=report.xml npx playwright test --reporter=junit,list || echo "Yeah, tests failed, Windows is like this" # always: # videos_artifacts: # path: ./tests/videos/** # junit_artifacts: # path: report.xml # type: text/xml # format: junit silently_mark_skipped_or_no_scheduled_tasks_builds_as_failed_task: skip_notifications: true only_if: $CIRRUS_CRON == "" && $CIRRUS_TAG == "" ### !!! ^ Don't forget to update this appropriately if our `only_if:` or `skip:` logic changes for the other tasks! !!! ### ### !!! ^ We want this task to run [only] if all other tasks would have skipped. !!! ### container: image: alpine:latest cpu: 1 clone_script: exit 0 # Shortest possible script that succeeds. Saves time vs actually cloning. Failing here triggers an automatic re-run, so don't do that! mark_task_as_failed_script: exit 1 # Shortest possible script to mark a build as "failed". This protects CIRRUS_LAST_GREEN_CHANGE from being updated by builds that actually just skipped CI. timeout_in: 6s