Skip to content

baseline test

baseline test #162

name: Build PHP Images
on:
# Uncomment below for testing purposes
pull_request:
push:
branches:
- main
jobs:
buildx:
runs-on: ubuntu-22.04
env:
TERM: xterm
strategy:
fail-fast: false
matrix:
lando-version:
- 3-dev
include:
- image: php
tag: 8.2-fpm-4
context: images/8.2-fpm
- image: php
tag: 8.2-apache-4
context: images/8.2-apache
- image: php
tag: 8.1-fpm-4
context: images/8.1-fpm
- image: php
tag: 8.1-apache-4
context: images/8.1-apache
- image: php
tag: 8.0-fpm-4
context: images/8.0-fpm
- image: php
tag: 8.0-apache-4
context: images/8.0-apache
- image: php
tag: 7.4-fpm-4
context: images/7.4-fpm
- image: php
tag: 7.4-apache-4
context: images/7.4-apache
- image: php
tag: 7.3-fpm-4
context: images/7.3-fpm
- image: php
tag: 7.3-apache-4
context: images/7.3-apache
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
with:
install: true
- name: Available platforms
run: echo ${{ steps.buildx.outputs.platforms }}
# Sets our edge tag if on PR.
- name: Set tag suffix
id: pr
if: ${{ github.event_name == 'pull_request' }}
run: echo "tag-suffix=-edge" >> $GITHUB_OUTPUT
# Build our images.
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push devwithlando/${{ matrix.image }}:${{ matrix.tag }}${{ steps.pr.outputs.TAG_SUFFIX }}
uses: docker/build-push-action@v4
with:
context: ${{ matrix.context }}
platforms: linux/amd64,linux/arm64
push: true
tags: devwithlando/${{ matrix.image }}:${{ matrix.tag }}${{ steps.pr.outputs.TAG_SUFFIX }}
cache-from: type=gha
cache-to: type=gha,mode=max
# Handle Lando Install to test the images after build
# We are hardcoding the dtaa normally included in the matrix
# due to how this testing is setup
- name: Install node 16
uses: actions/setup-node@v3
with:
node-version: '16'
registry-url: https://registry.npmjs.org
cache: yarn
- name: Install Yarn dependencies
run: yarn install --prefer-offline --frozen-lockfile
- name: Setup lando ${{ matrix.lando-version }}
uses: lando/setup-lando@v2
with:
lando-version: ${{ matrix.lando-version }}
config: |
plugins.@lando/php=/home/runner/work/php/php
telemetry: false
- name: Verify Lando works and we are dogfooding this plugin for tests
run: |
lando version
lando config --path plugins | grep php | grep /home/runner/work/php/php || (echo "::error:: Not dogfooding this plugin correctly! " && exit 1)
# This block should eventually become use lando/actions-leia@v2
# @NOTE? Do we want a way for our leia-action to configure apparmor since
# this might break a whole bunch of tests? or is this literally just a thing
# for the Lagoon mysql/mariadb container?
- name: Configure apparmor
run: |
set -x
sudo apt-get remove mysql-server --purge
sudo apt-get install apparmor-profiles
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
# Test newly built images.
- name: Test Edge Images on PR
if: ${{ github.event_name == 'pull_request' }}
shell: bash
run: |
yarn leia "./examples/images-edge/${{ matrix.tag }}/README.md" -c 'Destroy tests' --stdin --shell bash
- name: Test Stable Images on Push
if: ${{ github.event_name == 'push' }}
shell: bash
run: |
yarn leia "./examples/images-stable/${{ matrix.tag }}/README.md" -c 'Destroy tests' --stdin --shell bash