Skip to content

feat: split builds

feat: split builds #24

Workflow file for this run

name: Canary
on:
push:
branches:
- canary
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Check out the code
uses: actions/checkout@v4
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Get PNPM Cache Directory
id: pnpm-cache
run: |
echo "dir=~/.pnpm-store" >> $GITHUB_OUTPUT
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: |
/tmp/.buildx-cache
${{ steps.pnpm-cache.outputs.dir }}
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Prepare .env file
run: |
cp .env.production.example .env.production
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64, linux/arm64
push: true
tags: kdurek/dokploy:canary
cache-from: |
type=local,src=/tmp/.buildx-cache
type=local,src=${{ steps.pnpm-cache.outputs.dir }}
cache-to: |
type=local,dest=/tmp/.buildx-cache
type=local,dest=${{ steps.pnpm-cache.outputs.dir }}
# amd64:
# runs-on: ubuntu-latest
# steps:
# - name: Check out the code
# uses: actions/checkout@v4
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name: Login to Docker Hub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Prepare .env file
# run: |
# cp .env.production.example .env.production
# - name: Build and push
# uses: docker/build-push-action@v6
# with:
# context: .
# platforms: linux/amd64
# push: true
# tags: kdurek/dokploy:canary
# arm64:
# runs-on: ubuntu-latest
# steps:
# - name: Check out the code
# uses: actions/checkout@v4
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name: Login to Docker Hub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Prepare .env file
# run: |
# cp .env.production.example .env.production
# - name: Build and push
# uses: docker/build-push-action@v6
# with:
# context: .
# platforms: linux/arm64
# push: true
# tags: kdurek/dokploy:canary-arm64
# merge-manifest:
# runs-on: ubuntu-latest
# permissions:
# contents: read
# packages: write
# needs: [amd64, arm64]
# steps:
# - name: Checkout
# 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 Docker Hub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Create & publish manifest
# run: |
# docker buildx imagetools create --append kdurek/dokploy:canary-arm64 --tag kdurek/dokploy:canary