RSS Reader using AT Protocol rssbase.io
feed atom rss reader atproto social
2

Configure Feed

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

improve check speed by using base image

+59 -8
+33 -1
.tangled/workflows/check.yml
··· 21 21 - name: "Initialize devenv" 22 22 command: devenv shell true 23 23 24 + - name: "Prime Dagger base image cache" 25 + command: | 26 + devenv shell -- bash -c ' 27 + set -euo pipefail 28 + export DAGGER_NO_NAG=1 29 + export DOCKER_BUILDKIT=1 30 + BASE_HASH="$(sha256sum \ 31 + application/Dockerfile \ 32 + application/frankenphp/conf.d/10-app.ini \ 33 + application/frankenphp/docker-entrypoint.sh \ 34 + application/frankenphp/Caddyfile \ 35 + | sha256sum | cut -c1-16)" 36 + BASE_REF="${DAGGER_PHP_BASE_REF:-ttl.sh/rssbase-application-dagger-frankenphp-base-${BASE_HASH}:24h}" 37 + BASE_CACHE_REF="${DAGGER_PHP_BASE_CACHE_REF:-ttl.sh/rssbase-application-dagger-frankenphp-base-build-cache:24h}" 38 + 39 + if docker buildx imagetools inspect "${BASE_REF}" >/dev/null 2>&1; then 40 + echo "Using cached Dagger base image: ${BASE_REF}" 41 + else 42 + echo "Building and publishing Dagger base image: ${BASE_REF}" 43 + docker buildx create --use --name rssbase-ci-builder >/dev/null 2>&1 || docker buildx use rssbase-ci-builder 44 + docker buildx inspect --bootstrap 45 + docker buildx build application \ 46 + --target frankenphp_base \ 47 + --tag "${BASE_REF}" \ 48 + --cache-from "type=registry,ref=${BASE_CACHE_REF}" \ 49 + --cache-to "type=registry,ref=${BASE_CACHE_REF},mode=max" \ 50 + --push 51 + fi 52 + 53 + dagger settings --env ci application phpBaseImageRef "${BASE_REF}" 54 + ' 55 + 24 56 - name: "Run checks" 25 - command: DAGGER_NO_NAG=1 devenv shell dagger check 57 + command: DAGGER_NO_NAG=1 devenv shell dagger --env ci check
+26 -7
application/.dagger/main.dang
··· 2 2 Dagger workflows for rssbase.io/application. 3 3 """ 4 4 type Application { 5 - let source: Directory! @defaultPath(path: "/application") @ignorePatterns(patterns: [ 6 - ".dagger", 7 - "var", 8 - "vendor", 9 - ]) 5 + pub source: Directory! 6 + pub phpBaseImageRef: String! 7 + 8 + new( 9 + ws: Workspace!, 10 + """ 11 + Optional prebuilt frankenphp_base image to use instead of building the Dockerfile in Dagger. 12 + Useful in ephemeral CI where the Dagger engine cache starts empty. 13 + """ 14 + phpBaseImageRef: String! = "", 15 + ) { 16 + self.source = ws.directory("/application", exclude: [ 17 + ".dagger", 18 + "var", 19 + "vendor", 20 + ]) 21 + self.phpBaseImageRef = phpBaseImageRef 22 + self 23 + } 10 24 11 25 let phpBase: Container! { 12 - source 13 - .dockerBuild(target: "frankenphp_base") 26 + let base = if (phpBaseImageRef != "") { 27 + container.from(phpBaseImageRef) 28 + } else { 29 + source.dockerBuild(target: "frankenphp_base") 30 + } 31 + 32 + base 14 33 .withDirectory("/app", source) 15 34 .withWorkdir("/app") 16 35 .withMountedCache("/tmp/composer-cache", cacheVolume("composer-cache"))