2
0
mirror of https://github.com/frappe/frappe_docker.git synced 2024-09-20 11:09:01 +00:00
frappe_docker/.github/workflows/docker-build-push.yml
Al Majumdar 1fba893504
Add platforms to bake file to include m1 (arm64) (#733)
* add platforms to bake file to include m1 (arm64)

* add platforms to bake file to include m1 (arm64)

* rebased to latest main

* update docker/bake-action to latest version

* test action fix

* add qemu step

* revert to older version of bake

* remove arm64 from breaking build

* test with vanilla buildx

* cleanup

* added platforms directive to default args

* use build_push from current branch

* explicit build_push dependency

* use build push from current branch

* specify branch name

* experiment with syntax

* use commit id for tag

* experiment to extract branch from context

* ditto

* one more variation

* revert

* revert build push to version in current main

* added comment to force build

* force another build

* comment out build on PR

* test if event is pull request

* first test, event is "none"

* fix typo

* correct syntax

* set event name correctly

* explicit variable for multi arch build

* test multi arch build

* test negated conditional

* enable PR build

* use env variable to control multi arch

* test with env var

* revert

* revert

* try syntax variation

* check val

* try variation

* add platforms

* re-enable PR builds

* revert file

* untested but should work

* switch from env var to input for action

* test against restlessronin branch

* fix typo

* cleanups

* revert action link

* refactor to explicit platform list

* try variation

* remove env toggle

* retry

* try multi build

* ternary workaround

* cleanup

* revert action branch

* fix typo

* yat

* revert to origin CI action

* post review changes (untested)

* no arm for v12
2022-04-03 16:18:36 +03:00

91 lines
2.1 KiB
YAML

name: Build
on:
workflow_call:
inputs:
repo:
required: true
type: string
description: "'erpnext' or 'frappe'"
version:
required: true
type: string
description: "Major version, git tags should match 'v{version}.*'; or 'develop'"
push:
required: true
type: boolean
platforms:
required: true
type: string
description: "list of target platforms"
secrets:
DOCKERHUB_USERNAME:
required: true
DOCKERHUB_TOKEN:
required: true
jobs:
build:
name: Build
runs-on: ubuntu-latest
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup QEMU
uses: docker/setup-qemu-action@v1
with:
image: tonistiigi/binfmt:latest
platforms: all
- name: Setup Buildx
uses: docker/setup-buildx-action@v1
with:
driver-opts: network=host
- name: Get latest versions
run: python3 ./.github/scripts/get_latest_tags.py --repo ${{ inputs.repo }} --version ${{ inputs.version }}
- name: Build
uses: docker/bake-action@v1.7.0
with:
push: true
env:
REGISTRY_USER: localhost:5000/frappe
- name: Setup Python
uses: actions/setup-python@v3
with:
python-version: 3.9
- name: Install Docker Compose v2
uses: ndeloof/install-compose-action@4a33bc31f327b8231c4f343f6fba704fedc0fa23
- name: Install dependencies
run: |
python -m venv venv
venv/bin/pip install -r requirements-test.txt
- name: Test
run: venv/bin/pytest --color=yes
- name: Login
if: ${{ inputs.push }}
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Push
if: ${{ inputs.push }}
uses: docker/bake-action@v1.7.0
with:
push: true
set: "*.platform=${{ inputs.platforms }}"