name: Build GHCR images on: pull_request: branches: ["master"] 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: ghcr.io/${{ github.repository }} permissions: contents: read packages: write jobs: check_paths: uses: ./.github/workflows/check_paths.yml teslamate_build: name: Build images needs: check_paths if: needs.check_paths.outputs.githubfolder != 'true' 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: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Buildx uses: ./.github/actions/build with: docker_password: ${{ secrets.DOCKER_PASSWORD }} repository_owner: ${{ github.repository_owner }} repository: ${{ github.repository }} github_token: ${{ secrets.GITHUB_TOKEN }} version: ${{ github.head_ref || github.ref_name }} labels: | org.opencontainers.image.version=${{ github.ref || github.ref_name }} teslamate_merge: name: Merge GHCR images needs: - check_paths - teslamate_build if: needs.check_paths.outputs.githubfolder != 'true' runs-on: ubuntu-24.04 timeout-minutes: 10 steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Login to GitHub Container Registry uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Merge id: merge uses: ./.github/actions/merge with: image: ${{ env.REGISTRY_IMAGE }} grafana: needs: check_paths if: needs.check_paths.outputs.githubfolder != 'true' runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Login to GitHub Container Registry uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - uses: ./.github/actions/grafana with: image: ${{ env.REGISTRY_IMAGE }}/grafana labels: | org.opencontainers.image.version=${{ github.ref || github.ref_name }}