diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 99c8136..53a2486 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -7,63 +7,92 @@ on: - feature/actions jobs: - build: - name: Build + # 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: 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 - - create-docker-container: - name: Create Docker 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 + - name: Stop and remove current container run: | - chown 65532:65532 ./build/* - chmod 0755 ./build/* + docker stop automation_rs || true + docker rm automation_rs || true - - 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: Create container + run: | + docker create \ + --pull always \ + --restart unless-stopped \ + --name automation_rs \ + -e RUST_LOG=automation=debug \ + -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 - - 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 + docker network connect mqtt automation_rs + docker network connect web automation_rs + + - name: Start container + run: docker start automation_rs