(feat): revert back to docker runners
All checks were successful
/ build-web (push) Successful in 1m7s
/ build-desktop (push) Successful in 11m8s
/ build-mobile (push) Successful in 15m35s
/ release (push) Successful in 28s

This commit is contained in:
Alois 2026-05-14 14:35:17 +02:00
commit 9641c955fe
2 changed files with 114 additions and 42 deletions

View file

@ -5,51 +5,72 @@ on:
jobs: jobs:
build-web: build-web:
runs-on: self-hosted runs-on: docker
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
- name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq
- name: Install Nix
uses: https://github.com/cachix/install-nix-action@v30
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies - name: Install dependencies
run: nix-shell --run "bun install --frozen-lockfile" run: bun install --frozen-lockfile
- name: Copy licenses - name: Copy licenses
run: nix-shell --run "bun run copy-licenses" run: bun run copy-licenses
- name: Build packages - name: Build packages
run: nix-shell --run "bun run build:packages" run: bun run build:packages
- name: Build web - name: Build web
run: nix-shell --run "bun run build:web" run: bun run build:web
- name: Install rsync
run: apt-get update && apt-get install -y rsync
- name: Deploy - name: Deploy
run: rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-dev/ run: rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-dev/
build-mobile: build-mobile:
runs-on: self-hosted runs-on: docker
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
- name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq
- name: Install Nix
uses: https://github.com/cachix/install-nix-action@v30
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies - name: Install dependencies
run: nix-shell --run "bun install --frozen-lockfile" run: bun install --frozen-lockfile
- name: Copy licenses - name: Copy licenses
run: nix-shell --run "bun run copy-licenses" run: bun run copy-licenses
- name: Build packages - name: Build packages
run: nix-shell --run "bun run build:packages" run: bun run build:packages
- name: Setup Android Keystore - name: Setup Android Keystore
env: env:
KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
KEYSTORE_PROPERTIES: ${{ secrets.ANDROID_KEYSTORE_PROPERTIES }} KEYSTORE_PROPERTIES: ${{ secrets.ANDROID_KEYSTORE_PROPERTIES }}
run: | run: |
nix-shell --run "bun -e \"require('fs').writeFileSync('keystore.jks', Buffer.from(process.env.KEYSTORE_BASE64.replace(/\\s+/g, ''), 'base64'))\"" bun -e "require('fs').writeFileSync('keystore.jks', Buffer.from(process.env.KEYSTORE_BASE64.replace(/\s+/g, ''), 'base64'))"
nix-shell --run "bun -e \"const content = process.env.KEYSTORE_PROPERTIES.replace(/\\\\n/g, '\\n').replace(/\\r/g, '').split('\\n').map(l => l.trim()).filter(l => l).join('\\n'); require('fs').writeFileSync('keystore.properties', content)\"" bun -e "const content = process.env.KEYSTORE_PROPERTIES.replace(/\\n/g, '\n').replace(/\r/g, '').split('\n').map(l => l.trim()).filter(l => l).join('\n'); require('fs').writeFileSync('keystore.properties', content)"
- name: Build mobile - name: Build mobile
run: nix-shell --run "bun run build:mobile" run: bun run build:mobile
- name: Upload mobile artifact - name: Upload mobile artifact
uses: https://data.forgejo.org/actions/upload-artifact@v3 uses: https://data.forgejo.org/actions/upload-artifact@v3
@ -58,22 +79,31 @@ jobs:
path: apps/tauri/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk path: apps/tauri/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk
build-desktop: build-desktop:
runs-on: self-hosted runs-on: docker
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
- name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq
- name: Install Nix
uses: https://github.com/cachix/install-nix-action@v30
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies - name: Install dependencies
run: nix-shell --run "bun install --frozen-lockfile" run: bun install --frozen-lockfile
- name: Copy licenses - name: Copy licenses
run: nix-shell --run "bun run copy-licenses" run: bun run copy-licenses
- name: Build packages - name: Build packages
run: nix-shell --run "bun run build:packages" run: bun run build:packages
- name: Build desktop - name: Build desktop
run: nix-shell --run "bun run build:desktop" run: bun run build:desktop
- name: Upload desktop artifacts - name: Upload desktop artifacts
uses: https://data.forgejo.org/actions/upload-artifact@v3 uses: https://data.forgejo.org/actions/upload-artifact@v3
@ -82,7 +112,7 @@ jobs:
path: apps/tauri/src-tauri/target/release/bundle/ path: apps/tauri/src-tauri/target/release/bundle/
release: release:
runs-on: self-hosted runs-on: docker
needs: [build-web, build-mobile, build-desktop] needs: [build-web, build-mobile, build-desktop]
steps: steps:
- name: Check out repo - name: Check out repo
@ -90,8 +120,14 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies - name: Install dependencies
run: nix-shell --run "bun install --frozen-lockfile" run: bun install --frozen-lockfile
- name: Download mobile artifact - name: Download mobile artifact
uses: https://data.forgejo.org/actions/download-artifact@v3 uses: https://data.forgejo.org/actions/download-artifact@v3
@ -106,12 +142,12 @@ jobs:
path: apps/tauri/src-tauri/target/release/bundle/ path: apps/tauri/src-tauri/target/release/bundle/
- name: Copy releases - name: Copy releases
run: nix-shell --run "bun --bun run copy-releases" run: bun --bun run copy-releases
- name: Read version and hash - name: Read version and hash
id: version id: version
run: | run: |
VERSION="$(nix-shell --run "node -p \"require('./package.json').version\"")" VERSION="$(node -p "require('./package.json').version")"
SHORT_SHA="$(git rev-parse --short HEAD)" SHORT_SHA="$(git rev-parse --short HEAD)"
echo "version=$VERSION" >> "$FORGEJO_OUTPUT" echo "version=$VERSION" >> "$FORGEJO_OUTPUT"
echo "short_sha=$SHORT_SHA" >> "$FORGEJO_OUTPUT" echo "short_sha=$SHORT_SHA" >> "$FORGEJO_OUTPUT"

View file

@ -5,51 +5,72 @@ on:
jobs: jobs:
build-web: build-web:
runs-on: self-hosted runs-on: docker
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
- name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq
- name: Install Nix
uses: https://github.com/cachix/install-nix-action@v30
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies - name: Install dependencies
run: nix-shell --run "bun install --frozen-lockfile" run: bun install --frozen-lockfile
- name: Copy licenses - name: Copy licenses
run: nix-shell --run "bun run copy-licenses" run: bun run copy-licenses
- name: Build packages - name: Build packages
run: nix-shell --run "bun run build:packages" run: bun run build:packages
- name: Build web - name: Build web
run: nix-shell --run "bun run build:web" run: bun run build:web
- name: Install rsync
run: apt-get update && apt-get install -y rsync
- name: Deploy - name: Deploy
run: rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-prod/ run: rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-prod/
build-mobile: build-mobile:
runs-on: self-hosted runs-on: docker
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
- name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq
- name: Install Nix
uses: https://github.com/cachix/install-nix-action@v30
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies - name: Install dependencies
run: nix-shell --run "bun install --frozen-lockfile" run: bun install --frozen-lockfile
- name: Copy licenses - name: Copy licenses
run: nix-shell --run "bun run copy-licenses" run: bun run copy-licenses
- name: Build packages - name: Build packages
run: nix-shell --run "bun run build:packages" run: bun run build:packages
- name: Setup Android Keystore - name: Setup Android Keystore
env: env:
KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
KEYSTORE_PROPERTIES: ${{ secrets.ANDROID_KEYSTORE_PROPERTIES }} KEYSTORE_PROPERTIES: ${{ secrets.ANDROID_KEYSTORE_PROPERTIES }}
run: | run: |
nix-shell --run "bun -e \"require('fs').writeFileSync('keystore.jks', Buffer.from(process.env.KEYSTORE_BASE64.replace(/\\s+/g, ''), 'base64'))\"" bun -e "require('fs').writeFileSync('keystore.jks', Buffer.from(process.env.KEYSTORE_BASE64.replace(/\s+/g, ''), 'base64'))"
nix-shell --run "bun -e \"const content = process.env.KEYSTORE_PROPERTIES.replace(/\\\\n/g, '\\n').replace(/\\r/g, '').split('\\n').map(l => l.trim()).filter(l => l).join('\\n'); require('fs').writeFileSync('keystore.properties', content)\"" bun -e "const content = process.env.KEYSTORE_PROPERTIES.replace(/\\n/g, '\n').replace(/\r/g, '').split('\n').map(l => l.trim()).filter(l => l).join('\n'); require('fs').writeFileSync('keystore.properties', content)"
- name: Build mobile - name: Build mobile
run: nix-shell --run "bun run build:mobile" run: bun run build:mobile
- name: Upload mobile artifact - name: Upload mobile artifact
uses: https://data.forgejo.org/actions/upload-artifact@v3 uses: https://data.forgejo.org/actions/upload-artifact@v3
@ -58,22 +79,31 @@ jobs:
path: apps/tauri/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk path: apps/tauri/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk
build-desktop: build-desktop:
runs-on: self-hosted runs-on: docker
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
- name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq
- name: Install Nix
uses: https://github.com/cachix/install-nix-action@v30
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies - name: Install dependencies
run: nix-shell --run "bun install --frozen-lockfile" run: bun install --frozen-lockfile
- name: Copy licenses - name: Copy licenses
run: nix-shell --run "bun run copy-licenses" run: bun run copy-licenses
- name: Build packages - name: Build packages
run: nix-shell --run "bun run build:packages" run: bun run build:packages
- name: Build desktop - name: Build desktop
run: nix-shell --run "bun run build:desktop" run: bun run build:desktop
- name: Upload desktop artifacts - name: Upload desktop artifacts
uses: https://data.forgejo.org/actions/upload-artifact@v3 uses: https://data.forgejo.org/actions/upload-artifact@v3
@ -82,14 +112,20 @@ jobs:
path: apps/tauri/src-tauri/target/release/bundle/ path: apps/tauri/src-tauri/target/release/bundle/
release: release:
runs-on: self-hosted runs-on: docker
needs: [build-web, build-mobile, build-desktop] needs: [build-web, build-mobile, build-desktop]
steps: steps:
- name: Check out repo - name: Check out repo
uses: https://data.forgejo.org/actions/checkout@v4 uses: https://data.forgejo.org/actions/checkout@v4
- name: Install Packages
run: apt-get update && apt-get install -y sudo curl jq
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies - name: Install dependencies
run: nix-shell --run "bun install --frozen-lockfile" run: bun install --frozen-lockfile
- name: Download mobile artifact - name: Download mobile artifact
uses: https://data.forgejo.org/actions/download-artifact@v3 uses: https://data.forgejo.org/actions/download-artifact@v3
@ -104,12 +140,12 @@ jobs:
path: apps/tauri/src-tauri/target/release/bundle/ path: apps/tauri/src-tauri/target/release/bundle/
- name: Copy releases - name: Copy releases
run: nix-shell --run "bun --bun run copy-releases" run: bun --bun run copy-releases
- name: Read version - name: Read version
id: version id: version
run: | run: |
VERSION="$(nix-shell --run "node -p \"require('./package.json').version\"")" VERSION="$(node -p "require('./package.json').version")"
echo "version=$VERSION" >> "$FORGEJO_OUTPUT" echo "version=$VERSION" >> "$FORGEJO_OUTPUT"
echo "tag=${VERSION}-prod" >> "$FORGEJO_OUTPUT" echo "tag=${VERSION}-prod" >> "$FORGEJO_OUTPUT"