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: {}
 |