mirror of
https://github.com/plausible/analytics.git
synced 2024-12-25 02:24:55 +03:00
1a9dd0de90
Ensures that only one workflow is running per branch at a time. If you are working on a branch and push several commits in succession, any workflows in progress will be cancelled and only the last one will run.
63 lines
1.8 KiB
YAML
63 lines
1.8 KiB
YAML
name: Build Private Images
|
|
|
|
on:
|
|
push:
|
|
branches: [master, stable]
|
|
tags: ['r*']
|
|
pull_request:
|
|
branches: [master]
|
|
types: [synchronize, labeled]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
if: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'deploy-to-staging') }}
|
|
runs-on: buildjet-16vcpu-ubuntu-2204
|
|
|
|
steps:
|
|
- name: Docker meta
|
|
id: meta
|
|
uses: docker/metadata-action@v5
|
|
with:
|
|
images: plausible/analytics-private
|
|
tags: |
|
|
type=ref,event=pr
|
|
type=ref,event=branch
|
|
type=ref,event=tag
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Login to DockerHub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Build and push
|
|
id: docker_build
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
push: true
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|
|
cache-from: type=gha
|
|
cache-to: type=gha,mode=max
|
|
build-args: |
|
|
BUILD_METADATA=${{ steps.meta.outputs.json }}
|
|
|
|
- name: Image digest
|
|
run: echo ${{ steps.docker_build.outputs.digest }}
|
|
|
|
- name: Notify team on failure
|
|
if: ${{ failure() }}
|
|
uses: fjogeleit/http-request-action@v1
|
|
with:
|
|
url: ${{ secrets.BUILD_NOTIFICATION_URL }}
|
|
method: 'POST'
|
|
customHeaders: '{"Content-Type": "application/json"}'
|
|
data: '{"content": "<a href=\"https://github.com/plausible/analytics/actions/workflows/build-private-images.yml\">Build failed</a>"}'
|