name: Publish Docker images on: workflow_dispatch: workflow_call: schedule: - cron: "0 3 * * *" push: tags: - "v*" paths: - "**/*" - "!.github/**" # Important: Exclude PRs related to .github from auto-run - "!.github/workflows/**" # Important: Exclude PRs related to .github/workflows from auto-run - "!.github/actions/**" # Important: Exclude PRs related to .github/actions from auto-run env: REGISTRY_IMAGE: teslamate/teslamate permissions: contents: read packages: write jobs: check_paths: uses: ./.github/workflows/check_paths.yml teslamate_build: needs: check_paths if: needs.check_paths.outputs.githubfolder != 'true' || github.event_name == 'schedule' strategy: fail-fast: false matrix: include: - platform: "linux/amd64" runs_on: "ubuntu-24.04" cache_id: amd64 - platform: "linux/arm/v7" runs_on: "buildjet-2vcpu-ubuntu-2204-arm" cache_id: arm - platform: "linux/arm64" runs_on: "buildjet-2vcpu-ubuntu-2204-arm" cache_id: arm64 runs-on: ${{ matrix.runs_on }} timeout-minutes: 10 steps: - name: Checkout uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 - name: Buildx uses: ./.github/actions/build with: is_dockerhub_pushed: "1" docker_password: ${{ secrets.DOCKER_PASSWORD }} repository_owner: ${{ github.repository_owner }} repository: ${{ github.repository }} github_token: ${{ secrets.GITHUB_TOKEN }} version: ${{ github.ref_name }} teslamate_merge: runs-on: ubuntu-24.04 needs: - check_paths - teslamate_build if: needs.check_paths.outputs.githubfolder != 'true' || github.event_name == 'schedule' steps: - name: Checkout uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 - name: Login to Docker Hub uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 with: username: teslamate password: ${{ secrets.DOCKER_PASSWORD }} - uses: ./.github/actions/merge with: image: ${{ env.REGISTRY_IMAGE }} tags: | type=schedule,pattern=edge type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=edge grafana: needs: check_paths if: needs.check_paths.outputs.githubfolder != 'true' || github.event_name == 'schedule' runs-on: ubuntu-24.04 timeout-minutes: 10 steps: - name: Checkout uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 - name: Login to Docker Hub uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 with: username: teslamate password: ${{ secrets.DOCKER_PASSWORD }} - uses: ./.github/actions/grafana with: tags: | type=edge type=schedule,pattern=edge type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}}