Live video on the AT Protocol
79
fork

Configure Feed

Select the types of activity you want to include in your feed.

at natb/check-perms 422 lines 11 kB view raw
1include: ".ci/dockerfile-hash.yaml" 2 3variables: 4 DOCKER_REPO: "us-central1-docker.pkg.dev/aquareum-tv/streamplace/build" 5 6build-bunny: 7 stage: build 8 interruptible: true 9 image: 10 name: gcr.io/kaniko-project/executor:v1.14.0-debug 11 entrypoint: [""] 12 timeout: 2 hours 13 script: 14 - mkdir -p /kaniko/.docker 15 - cp "$DOCKER_AUTH_CONFIG" /kaniko/.docker/config.json 16 - /kaniko/executor 17 --context "${CI_PROJECT_DIR}/docker" 18 --dockerfile "${CI_PROJECT_DIR}/docker/bunny.Dockerfile" 19 --destination "$DOCKER_REPO:bunny" 20 21builder: 22 stage: build 23 interruptible: true 24 allow_failure: true 25 image: 26 name: gcr.io/kaniko-project/executor:v1.14.0-debug 27 entrypoint: [""] 28 variables: 29 FQ_IMAGE_NAME: "$DOCKER_REPO:builder-$DOCKERFILE_HASH" 30 TARGET: builder 31 timeout: 2 hours 32 script: 33 - mkdir -p /kaniko/.docker 34 - cp "$DOCKER_AUTH_CONFIG" /kaniko/.docker/config.json 35 - /kaniko/executor 36 --build-arg TARGETARCH=amd64 37 --build-arg DOCKERFILE_HASH=$DOCKERFILE_HASH 38 --cache=true 39 --context "${CI_PROJECT_DIR}" 40 --dockerfile "${CI_PROJECT_DIR}/docker/build.Dockerfile" 41 --destination "$FQ_IMAGE_NAME" 42 --target "$TARGET" 43 44builder-rebuild: 45 tags: 46 - tiny-job 47 stage: build 48 allow_failure: true 49 interruptible: true 50 image: 51 name: curlimages/curl:latest 52 entrypoint: [""] 53 needs: 54 - job: builder 55 timeout: 2 hours 56 script: 57 - echo "CI_PIPELINE_ID=$CI_PIPELINE_ID" 58 - echo "CI_PIPELINE_ID=$CI_PIPELINE_IID" 59 - echo "CI_PROJECT_ID=$CI_PROJECT_ID" 60 - > 61 curl 62 --data-raw '{"project_id": "'$CI_PROJECT_ID'", "pipeline_id": "'$CI_PIPELINE_ID'", "job_token": "'$CI_JOB_TOKEN'"}' 63 --fail-with-body 64 https://retry-gitlab.iameli.workers.dev/ 65 66.build: 67 stage: build 68 interruptible: true 69 image: "$DOCKER_REPO:builder-$DOCKERFILE_HASH" 70 timeout: 2 hours 71 script: 72 - rm -rf /usr/x86_64-w64-mingw32/include/d3dcompiler.h /usr/share/mingw-w64/include/d3dcompiler.h /usr/lib/gcc/x86_64-w64-mingw32/10-posix/libssp.dll.a /usr/lib/gcc/x86_64-w64-mingw32/10-posix/libssp-0.dll /usr/lib/gcc/x86_64-w64-mingw32/10-win32/libssp-0.dll /usr/lib/gcc/x86_64-w64-mingw32/10-win32/libssp.dll.a 73 - git fetch --unshallow || echo 'already unshallow' 74 - bash -c "make version && make app && make $TARGET && make desktop-$TARGET && make ci-upload-node-$TARGET -j$(nproc)" 75 artifacts: 76 reports: 77 dotenv: .ci/build.env 78 79build-linux-amd64: 80 extends: 81 - .build 82 variables: 83 TARGET: linux-amd64 84 85build-linux-arm64: 86 extends: 87 - .build 88 variables: 89 TARGET: linux-arm64 90 91build-windows-amd64: 92 extends: 93 - .build 94 variables: 95 TARGET: windows-amd64 96 97build-darwin-arm64: 98 extends: 99 - .build 100 variables: 101 TARGET: darwin-arm64 102 103build-darwin-amd64: 104 extends: 105 - .build 106 variables: 107 TARGET: darwin-amd64 108 109leak-test-viewers: 110 stage: build 111 interruptible: true 112 needs: 113 - job: build-linux-amd64 114 artifacts: true 115 - job: build-bunny 116 image: 117 name: "$DOCKER_REPO:bunny" 118 variables: 119 SP_WIDE_OPEN: "true" 120 SP_NO_FIREHOSE: "true" 121 SP_WHIP_TEST: "--file=/bunny.mp4 --count=1 --viewers=50 --duration=5m" 122 KUBERNETES_MEMORY_REQUEST: "2Gi" 123 KUBERNETES_MEMORY_LIMIT: "2Gi" 124 GOGC: "20" 125 GOMEMLIMIT: "2GiB" 126 timeout: "10 minutes" 127 allow_failure: true 128 script: 129 - /bunny.sh 130 131leak-test-streamers: 132 stage: build 133 interruptible: true 134 needs: 135 - job: build-linux-amd64 136 artifacts: true 137 - job: build-bunny 138 image: 139 name: "$DOCKER_REPO:bunny" 140 variables: 141 SP_WIDE_OPEN: "true" 142 SP_NO_FIREHOSE: "true" 143 SP_WHIP_TEST: "--file=/bunny.mp4 --count=10 --duration=5m" 144 KUBERNETES_MEMORY_REQUEST: "2Gi" 145 KUBERNETES_MEMORY_LIMIT: "2Gi" 146 GOGC: "20" 147 GOMEMLIMIT: "2GiB" 148 timeout: "10 minutes" 149 allow_failure: true 150 script: 151 - /bunny.sh 152 153test: 154 stage: build 155 interruptible: true 156 image: "$DOCKER_REPO:builder-$DOCKERFILE_HASH" 157 timeout: 2 hours 158 variables: 159 STREAMPLACE_TEST_COUNT: "1" 160 script: 161 - git fetch --unshallow || echo 'already unshallow' 162 - make dev-setup && make dev-test && make ci-lexicons 163 164build-docker-mistserver: 165 stage: build 166 interruptible: true 167 needs: 168 - job: build-linux-amd64 169 artifacts: true 170 image: 171 name: gcr.io/kaniko-project/executor:v1.14.0-debug 172 entrypoint: [""] 173 timeout: 2 hours 174 script: 175 - mkdir -p /kaniko/.docker 176 - cp "$DOCKER_AUTH_CONFIG" /kaniko/.docker/config.json 177 - /kaniko/executor 178 --build-arg TARGETARCH=amd64 179 --build-arg STREAMPLACE_URL=$STREAMPLACE_URL_LINUX_AMD64 180 --context "${CI_PROJECT_DIR}" 181 --dockerfile "${CI_PROJECT_DIR}/docker/mistserver.Dockerfile" 182 --destination "$DOCKER_REPO:$STREAMPLACE_BRANCH-mistserver" 183 --destination "$DOCKER_REPO:$STREAMPLACE_VERSION-mistserver" 184 185build-docker-amd64: 186 stage: build 187 interruptible: true 188 needs: 189 - job: build-linux-amd64 190 artifacts: true 191 image: 192 name: gcr.io/kaniko-project/executor:v1.14.0-debug 193 entrypoint: [""] 194 timeout: 2 hours 195 script: 196 - mkdir -p /kaniko/.docker 197 - cp "$DOCKER_AUTH_CONFIG" /kaniko/.docker/config.json 198 - /kaniko/executor 199 --build-arg TARGETARCH=amd64 200 --build-arg STREAMPLACE_URL=$STREAMPLACE_URL_LINUX_AMD64 201 --context "${CI_PROJECT_DIR}" 202 --dockerfile "${CI_PROJECT_DIR}/docker/release.Dockerfile" 203 --destination "$CI_REGISTRY_IMAGE:$STREAMPLACE_BRANCH-amd64" 204 --destination "$CI_REGISTRY_IMAGE:$STREAMPLACE_VERSION-amd64" 205 --destination "$DOCKER_REPO:$STREAMPLACE_BRANCH-amd64" 206 --destination "$DOCKER_REPO:$STREAMPLACE_VERSION-amd64" 207 208build-docker-arm64: 209 stage: build 210 interruptible: true 211 tags: 212 - linux 213 - arm64 214 needs: 215 - job: build-linux-arm64 216 artifacts: true 217 image: 218 name: gcr.io/kaniko-project/executor:v1.14.0-debug 219 entrypoint: [""] 220 timeout: 2 hours 221 script: 222 - mkdir -p /kaniko/.docker 223 - cp "$DOCKER_AUTH_CONFIG" /kaniko/.docker/config.json 224 - /kaniko/executor 225 --build-arg TARGETARCH=arm64 226 --build-arg STREAMPLACE_URL=$STREAMPLACE_URL_LINUX_ARM64 227 --context "${CI_PROJECT_DIR}" 228 --dockerfile "${CI_PROJECT_DIR}/docker/release.Dockerfile" 229 --destination "$CI_REGISTRY_IMAGE:$STREAMPLACE_BRANCH-arm64" 230 --destination "$CI_REGISTRY_IMAGE:$STREAMPLACE_VERSION-arm64" 231 --destination "$DOCKER_REPO:$STREAMPLACE_BRANCH-arm64" 232 --destination "$DOCKER_REPO:$STREAMPLACE_VERSION-arm64" 233 --customPlatform=linux/arm64 234 235build-docker-manifest: 236 stage: build 237 interruptible: true 238 image: 239 name: curlimages/curl:latest 240 entrypoint: [""] 241 needs: 242 - job: build-docker-arm64 243 - job: build-docker-amd64 244 - job: build-linux-amd64 # just for the environment variables 245 artifacts: true 246 before_script: 247 - curl -s -L https://github.com/estesp/manifest-tool/releases/download/v2.1.7/binaries-manifest-tool-2.1.7.tar.gz | tar xvz 248 - mv manifest-tool-linux-amd64 ./manifest-tool 249 - chmod +x ./manifest-tool 250 timeout: 2 hours 251 script: 252 - ./manifest-tool --username "${CI_REGISTRY_USER}" --password "${CI_REGISTRY_PASSWORD}" push from-args 253 --platforms linux/amd64,linux/arm64 254 --template $CI_REGISTRY_IMAGE:$STREAMPLACE_VERSION-ARCH 255 --tags $STREAMPLACE_BRANCH 256 --target $CI_REGISTRY_IMAGE:$STREAMPLACE_VERSION 257 258.build-android: 259 stage: build 260 interruptible: true 261 image: "$DOCKER_REPO:builder-$DOCKERFILE_HASH" 262 timeout: 2 hours 263 script: 264 - git fetch --unshallow || echo 'already unshallow' 265 - make $TARGET -j$(nproc) 266 267build-android-debug: 268 extends: 269 - .build-android 270 variables: 271 TARGET: ci-android-debug 272 273build-android-release: 274 extends: 275 - .build-android 276 variables: 277 TARGET: ci-android-release 278 279.build-on-mac: 280 stage: build 281 interruptible: true 282 image: macos-sonoma-xcode-big 283 tags: 284 - tart-installed 285 variables: 286 STREAMPLACE_TEST_COUNT: "1" 287 NODE_OPTIONS: "--max_old_space_size=4096" 288 timeout: 2 hours 289 script: 290 # workaround for https://gitlab.com/gitlab-org/gitlab/-/issues/501457 291 # which is a workaround for ios builds failing due to /tmp vs /private/tmp weirdness 292 - cd .. 293 - mv streamplace /Users/admin/streamplace 294 - cd /Users/admin/streamplace 295 - git fetch --unshallow || echo 'already unshallow' 296 - brew install ninja go openssl@3 && go version 297 - export PATH="/opt/homebrew/opt/node@22/bin:$PATH" 298 - brew install node@22 299 - node --version 300 - npm install -g corepack@latest --force 301 - corepack enable 302 - sudo gem uninstall xcodeproj -x --ignore-dependencies 303 - sudo gem install xcodeproj -v 1.25.1 304 - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup.sh && bash rustup.sh -y && rm rustup.sh 305 - export PATH="$PATH:$HOME/.cargo/bin" 306 - echo $PATH 307 - 'echo "which xcodeproj: $(which xcodeproj)"' 308 - 'echo "xcodeproj --version: $(xcodeproj --version)"' 309 - "$(which xcodeproj) --version" 310 - > 311 export GOTOOLCHAIN=go1.24.2 312 && python3 -m pip install virtualenv 313 && python3 -m virtualenv ~/venv 314 && source ~/venv/bin/activate 315 && python3 -m pip install meson 316 && ${=COMMAND} 317 # ^^ zsh-ism for running command with spaces 318 319build-ios: 320 extends: 321 - .build-on-mac 322 variables: 323 COMMAND: make ci-ios -j16 324 325build-desktop-darwin: 326 extends: 327 - .build-on-mac 328 needs: 329 - build-darwin-amd64 330 - build-darwin-arm64 331 variables: 332 COMMAND: make ci-desktop-darwin 333 334windows-selftest: 335 interruptible: true 336 stage: build 337 # for the moment... 338 tags: 339 - windows 340 timeout: 2 hours 341 needs: 342 - job: build-windows-amd64 343 artifacts: true 344 variables: 345 MSYSTEM: "MINGW32" 346 CHERE_INVOKING: "yes" 347 script: 348 - C:\msys64\usr\bin\bash -lc "bash -x ./util/windows-selftest.sh $STREAMPLACE_DESKTOP_URL_WINDOWS_AMD64" 349 350.release-template: 351 stage: build 352 interruptible: true 353 image: "$DOCKER_REPO:builder-$DOCKERFILE_HASH" 354 needs: 355 - build-darwin-amd64 356 - build-darwin-arm64 357 - build-android-debug 358 - build-android-release 359 - build-docker-amd64 360 - build-docker-arm64 361 - build-docker-manifest 362 - build-desktop-darwin 363 - test 364 rules: 365 - if: '$CI_COMMIT_TAG =~ /^v?\d+\.\d+\.\d+$/' 366 timeout: 2 hours 367 368npm-release: 369 extends: 370 - .release-template 371 script: 372 - make ci-npm-release 373 374release: 375 extends: 376 - .release-template 377 script: 378 - make ci-release 379 380.report-status: 381 tags: 382 - tiny-job 383 interruptible: true 384 image: 385 name: curlimages/curl 386 entrypoint: [""] 387 variables: 388 STATUS_PROJECT: streamplace/streamplace 389 STATUS_NAME: git.stream.place 390 script: 391 # For complete details on the GitHub API please see: 392 # https://developer.github.com/v3/repos/statuses 393 - > 394 set -eu && curl -L 395 --fail-with-body 396 --silent 397 -X POST 398 -H "Accept: application/vnd.github+json" 399 -H "Authorization: Bearer $GITHUB_TOKEN" 400 -H "X-GitHub-Api-Version: 2022-11-28" 401 https://api.github.com/repos/${STATUS_PROJECT}/statuses/${CI_COMMIT_SHA} 402 -d '{"state":"'${CI_JOB_NAME}'","target_url":"'${CI_PIPELINE_URL}'","description":"'${STATUS_NAME}'","context":"'${STATUS_NAME}'"}' 403 environment: 404 name: reporting-github 405 dependencies: [] 406 407pending: 408 stage: .pre 409 extends: 410 - .report-status 411 412success: 413 stage: .post 414 extends: 415 - .report-status 416 417failure: 418 stage: .post 419 extends: 420 - .report-status 421 rules: 422 - when: on_failure