baseline test #161
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |