0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-23 15:09:10 -05:00
penpot/.github/workflows/pr.yaml
2024-06-28 08:18:43 +02:00

88 lines
2.4 KiB
YAML

name: Publish docker image
on:
pull_request:
types: [opened, synchronize]
branches:
- "*"
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- dockerfile: Dockerfile.frontend
type: pr-frontend
name: frontend
- dockerfile: Dockerfile.backend
type: pr-backend
name: backend
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.PAT_TOKEN }}
- name: Determine the branch name
id: determine_branch
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo "branch_name=${{ github.head_ref }}" >> $GITHUB_ENV
else
echo "branch_name=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
fi
- name: Replace / with - in branch name
id: replace_slash
run: |
SANITIZED_BRANCH_NAME=$(echo "${{ env.branch_name }}" | tr '/' '-')
echo "sanitized_branch_name=${SANITIZED_BRANCH_NAME}" >> $GITHUB_ENV
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
tags: |
type=raw,enable=true,prefix=${{matrix.type}}-,value=${{ env.sanitized_branch_name }}
images: |
ghcr.io/tokens-studio/tokens-studio-for-penpot
- name: prebuild
run: |
echo "Building ${{ matrix.name }} image"
./manage.sh build-${{matrix.name}}-bundle
mv ./bundles/${{matrix.name}} ./docker/images/bundle-${{matrix.name}}/
- name: Publish Docker images
uses: docker/build-push-action@v5
with:
context: ./docker/images
file: ./docker/images/${{ matrix.dockerfile }}
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
deploy:
runs-on: ubuntu-latest
needs:
- "build"
steps:
- uses: actions/checkout@v4
- name: 🍍 Deploy with Gimlet
uses: gimlet-io/gimlet-artifact-shipper-action@v0.8.3
env:
GIMLET_SERVER: ${{ secrets.GIMLET_SERVER }}
GIMLET_TOKEN: ${{ secrets.GIMLET_TOKEN }}