123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- env:
- PYTHON_VERSION: 3.12
- GITHUB_TOKEN: ENCRYPTED[!06df1c93af902fc78fbd143724c5d11733607c6e743665859073de9aa2a317a5ac67b302f5ed92b232f6d28fae602e92!]
- # 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[50debc954fd1b46513fa44d6270491edaba4c9c0ab6fbf0a3fb8e3bdfe9e380d203bd90857ae720b5af31d8a02c6389f]
- 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
- wget
- 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"
- fix_linux_appimage_script:
- - ./script/fix-linux-appimage.sh aarch64
- 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[50debc954fd1b46513fa44d6270491edaba4c9c0ab6fbf0a3fb8e3bdfe9e380d203bd90857ae720b5af31d8a02c6389f]
- 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
|