106 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | |
| kind: pipeline
 | |
| type: docker
 | |
| name: default
 | |
| 
 | |
| steps:
 | |
|   - name: web_build
 | |
|     image: node:23
 | |
|     volumes:
 | |
|       - name: web_app
 | |
|         path: /tmp/web_build
 | |
|     commands:
 | |
|       - cd central_frontend
 | |
|       - npm install
 | |
|       - npm run build
 | |
|       - mv dist /tmp/web_build
 | |
| 
 | |
|   - name: backend_check
 | |
|     image: rust
 | |
|     volumes:
 | |
|       - name: rust_registry
 | |
|         path: /usr/local/cargo/registry
 | |
|     commands:
 | |
|       - rustup component add clippy
 | |
|       - cd central_backend
 | |
|       - cargo clippy -- -D warnings
 | |
|       - cargo test
 | |
| 
 | |
|   - name: custom_consumption_check
 | |
|     image: rust
 | |
|     volumes:
 | |
|       - name: rust_registry
 | |
|         path: /usr/local/cargo/registry
 | |
|     commands:
 | |
|       - rustup component add clippy
 | |
|       - cd custom_consumption
 | |
|       - cargo clippy -- -D warnings
 | |
|       - cargo test
 | |
|     depends_on:
 | |
|       - backend_check
 | |
| 
 | |
|   - name: backend_compile
 | |
|     image: rust
 | |
|     volumes:
 | |
|       - name: rust_registry
 | |
|         path: /usr/local/cargo/registry
 | |
|       - name: web_app
 | |
|         path: /tmp/web_build
 | |
|       - name: releases
 | |
|         path: /tmp/releases
 | |
|     when:
 | |
|       event:
 | |
|         - tag
 | |
|     depends_on:
 | |
|       - backend_check
 | |
|       - web_build
 | |
|     commands:
 | |
|       - cd central_backend
 | |
|       - mv /tmp/web_build/dist static
 | |
|       - cargo build --release
 | |
|       - ls -lah target/release/central_backend
 | |
|       - mv target/release/central_backend /tmp/releases/central_backend
 | |
| 
 | |
|   # Build ESP32 program
 | |
|   - name: esp32_compile
 | |
|     image: espressif/idf:v5.5.1
 | |
|     volumes:
 | |
|       - name: releases
 | |
|         path: /tmp/releases
 | |
|     commands:
 | |
|       - cd esp32_device
 | |
|       - /opt/esp/entrypoint.sh idf.py build
 | |
|       - ls -lah build/main.bin
 | |
|       - cp build/main.bin /tmp/releases/wt32-eth01.bin
 | |
| 
 | |
|   # Auto-release to Gitea
 | |
|   - name: gitea_release
 | |
|     image: plugins/gitea-release
 | |
|     depends_on:
 | |
|     - backend_compile
 | |
|     - esp32_compile
 | |
|     when:
 | |
|       event:
 | |
|         - tag
 | |
|     volumes:
 | |
|       - name: releases
 | |
|         path: /tmp/releases
 | |
|     environment:
 | |
|       PLUGIN_API_KEY:
 | |
|         from_secret: GITEA_API_KEY # needs permission write:repository
 | |
|     settings:
 | |
|       base_url: https://gitea.communiquons.org
 | |
|       files:
 | |
|         - /tmp/releases/central_backend
 | |
|         - /tmp/releases/wt32-eth01.bin
 | |
|       checksum: sha512
 | |
| 
 | |
| 
 | |
| volumes:
 | |
|   - name: rust_registry
 | |
|     temp: {}
 | |
|   - name: web_app
 | |
|     temp: {}
 | |
|   - name: releases
 | |
|     temp: {}
 |