martin/.github/workflows/docker.yml
Yuri Astrakhan 09db6485bd
Revert arm64 docker support (#613) and following (#658)
This reverts commit c358ec53af, as well as
any other related changes to the docker github action.

It is clearly not working, while also not allowing us to build proper
releases quicker.

Several ways to fix:
* Use 3rd party CI service to just build multi-platform docker images
* Use cross-compilation wiht github actions
* (???)

See also #655,  #603 and #505
2023-05-09 16:39:49 -04:00

113 lines
3.4 KiB
YAML

name: Docker
on:
push:
branches: [main, v0.6]
paths-ignore: ['**.md']
pull_request:
branches: [main, v0.6]
paths-ignore: ['**.md']
release:
types: [published]
workflow_dispatch:
jobs:
docker:
# Don't change this name - it is used by the merge protection rules
name: Build ${{ matrix.platform }} docker image
strategy:
fail-fast: true
matrix:
include:
- platform: linux/amd64
file: Dockerfile
# Arm64 does not publish properly, see #655
# - platform: linux/arm64
# file: arm64.Dockerfile
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
# https://github.com/docker/metadata-action
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v4
with:
images: ghcr.io/maplibre/martin
# # https://github.com/docker/setup-qemu-action
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v2.1.0
# with:
# platforms: linux/arm64,linux/amd64
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2.5.0
with:
install: true
# platforms: ${{ matrix.platform }}
- name: Build the Docker image
id: docker_build
uses: docker/build-push-action@v4
with:
file: ${{ matrix.file }}
push: false
load: true
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
# platforms: ${{ matrix.platform }}
- name: Start postgres
# arm64 testing cannot be tested in a cross-platform env
if: matrix.platform == 'linux/amd64'
uses: nyurik/action-setup-postgis@v1
id: pg
with:
username: test
password: test
database: test
rights: --superuser
- name: Init database
# arm64 testing cannot be tested in a cross-platform env
if: matrix.platform == 'linux/amd64'
shell: bash
run: tests/fixtures/initdb.sh
env:
DATABASE_URL: ${{ steps.pg.outputs.connection-uri }}
- name: Test Docker image
# arm64 testing cannot be tested in a cross-platform env
if: matrix.platform == 'linux/amd64'
run: |
TAG=$(echo '${{ steps.docker_meta.outputs.json }}' | jq -r '.tags[0]')
export MARTIN_BUILD=-
export MARTIN_BIN="docker run --rm --net host -e DATABASE_URL -v $PWD/tests:/tests $TAG"
echo "MARTIN_BIN=$MARTIN_BIN"
tests/test.sh
env:
DATABASE_URL: ${{ steps.pg.outputs.connection-uri }}
- name: Login to GitHub Docker registry
uses: docker/login-action@v2
if: ${{ github.actor != 'dependabot[bot]' && !github.event.pull_request.head.repo.fork }}
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Push the Docker image
if: ${{ github.actor != 'dependabot[bot]' && github.event_name != 'pull_request' }}
uses: docker/build-push-action@v4
with:
file: ${{ matrix.file }}
push: true
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
# platforms: ${{ matrix.platform }}