forked from cory/tildefriends
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Build Tilde Friends
 | 
						|
run-name: ${{ gitea.actor }} running 🚀
 | 
						|
on: [push]
 | 
						|
 | 
						|
jobs:
 | 
						|
  Build-All:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container:
 | 
						|
      image: node:23-bookworm-slim
 | 
						|
      valid_volumes:
 | 
						|
        - '/opt/keys'
 | 
						|
        - '/opt/deps'
 | 
						|
      volumes:
 | 
						|
        - /opt/keys:/opt/keys
 | 
						|
        - /opt/deps:/opt/deps
 | 
						|
    steps:
 | 
						|
      - name: Install build dependencies
 | 
						|
        run: >
 | 
						|
          apt update && apt install -y \
 | 
						|
            build-essential \
 | 
						|
            clang-19 \
 | 
						|
            cmake \
 | 
						|
            curl \
 | 
						|
            docker.io \
 | 
						|
            doxygen \
 | 
						|
            file \
 | 
						|
            gcc-aarch64-linux-gnu \
 | 
						|
            git \
 | 
						|
            graphviz \
 | 
						|
            libgpgme11 \
 | 
						|
            libssl-dev \
 | 
						|
            mingw-w64 \
 | 
						|
            rsync \
 | 
						|
            unzip \
 | 
						|
            zip \
 | 
						|
            zlib1g-dev
 | 
						|
      - name: Get code
 | 
						|
        uses: actions/checkout@v4
 | 
						|
        with:
 | 
						|
          submodules: true
 | 
						|
      - name: Setup environment
 | 
						|
        run: |
 | 
						|
          update-alternatives --install /usr/bin/clang clang /usr/bin/clang-19 100
 | 
						|
          update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-19 100
 | 
						|
          ln -s /opt/keys .keys
 | 
						|
          ln -sf /opt/deps/ios_toolchain deps/
 | 
						|
          ln -sf /opt/deps/macos_toolchain deps/
 | 
						|
      - name: Build documentation
 | 
						|
        run: |
 | 
						|
          mkdir -p out/html/ ~/.ssh/
 | 
						|
          make -j`nproc` docs
 | 
						|
          echo 'pildefriends ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKD3Kde5vDO0TrMBDK0IGGeNGe/XinWAZkSQ/rXxwUjt' >> ~/.ssh/known_hosts
 | 
						|
          rsync -avP --delete -e "ssh -i /opt/keys/ssh.ed25519" out/html/ tfdocs@pildefriends:docs/html/
 | 
						|
      - name: Setup JDK
 | 
						|
        uses: actions/setup-java@v3
 | 
						|
        with:
 | 
						|
          java-version: '17'
 | 
						|
          distribution: 'temurin'
 | 
						|
      - name: Setup Android SDK
 | 
						|
        uses: android-actions/setup-android@v3
 | 
						|
        with:
 | 
						|
          packages: 'tools platform-tools build-tools;35.0.0 platforms;android-35 ndk;27.2.12479018'
 | 
						|
      - name: Docker build
 | 
						|
        run: DOCKER_BUILDKIT=1 docker build .
 | 
						|
      - name: Build
 | 
						|
        run: ANDROID_SDK=$HOME/.android/sdk make -j`nproc` all dist
 | 
						|
      - name: Upload artifacts
 | 
						|
        uses: actions/upload-artifact@v3
 | 
						|
        with:
 | 
						|
          name: dist
 | 
						|
          path: dist/*
 |