# Based on: https://pastebin.com/99Fq2b2w name: Build and deploy automation_rs on: push: branches: - main - feature/actions jobs: # build: # name: Build # runs-on: ubuntu-latest # container: catthehacker/ubuntu:act-latest # steps: # - name: Checkout # uses: actions/checkout@v4 # # - name: Setup Rust # uses: actions-rust-lang/setup-rust-toolchain@v1 # with: # rustflags: "" # # - name: Formatting # uses: actions-rust-lang/rustfmt@v1 # # - name: Clippy # run: cargo clippy --all-targets --all -- -D warnings # # - name: Build # run: cargo build --release # # - name: Upload artifact # uses: actions/upload-artifact@v3 # with: # name: build # path: target/x86_64-unknown-linux-gnu/release/automation # # container: # name: Create container # runs-on: ubuntu-latest # needs: [build] # container: catthehacker/ubuntu:act-latest # steps: # - name: Checkout # uses: actions/checkout@v4 # # - name: Download artifact # uses: actions/download-artifact@v3 # with: # name: build # # - name: Set permissions # run: | # chown 65532:65532 ./build/* # chmod 0755 ./build/* # # - name: Login to registry # uses: https://github.com/docker/login-action@v3 # with: # registry: git.huizinga.dev # username: ${{ gitea.actor }} # password: ${{ secrets.REGISTRY_TOKEN }} # # - name: Build & Push Docker Image # uses: https://github.com/docker/build-push-action@v5 # with: # context: . # push: true # tags: git.huizinga.dev/dreaded_x/automation_rs:latest deploy: name: Deploy Docker container runs-on: ubuntu-latest container: catthehacker/ubuntu:act-latest # needs: [container] steps: - name: Stop and remove current container run: | docker stop automation_rs || true docker rm automation_rs || true - name: Create container run: | docker create \ --pull always \ --restart unless-stopped \ --name automation_rs \ -e RUST_LOG=${{ secrets.RUST_LOG }} \ -e MQTT_PASSWORD=${{ secrets.MQTT_PASSWORD }} \ -e HUE_TOKEN=${{ secrets.HUE_TOKEN }} \ -e NTFY_TOPIC=${{ secrets.NTFY_TOPIC }} \ git.huizinga.dev/dreaded_x/automation_rs:latest docker network connect mqtt automation_rs docker network connect web automation_rs - name: Start container run: docker start automation_rs