Skip to content

fix(Push): Fixes manifest build, test, push #58

fix(Push): Fixes manifest build, test, push

fix(Push): Fixes manifest build, test, push #58

Workflow file for this run

name: Test Builds
on:
workflow_dispatch:
pull_request:
branches:
- develop
concurrency:
group: ${{ github.workflow }}
env:
REGISTRY: ghcr.io
OWNER: ndigitals
PACKAGE: wp-dev-container
ACTION_VERSION: 1
jobs:
build:
name: Build Images
strategy:
fail-fast: false
matrix:
PHP_VERSION:
- '8.0'
- '8.3'
NODE_VERSION:
- '16'
- '20'
#builder:
# - ubuntu-22.04
# - self-hosted
#platform:
# - amd64
# - arm64
#exclude:
# - builder: ubuntu-22.04
# platform: arm64
# - builder: self-hosted
# platform: amd64
runs-on:
#- ${{ matrix.builder }}
- ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Required due to the way Git works, without it this action won't be able to find any or the correct tags
# https://github.com/marketplace/actions/docker-setup-qemu
- name: Set up QEMU for multi-architecture builds
uses: docker/setup-qemu-action@v3
# https://github.com/marketplace/actions/docker-setup-buildx
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# https://github.com/marketplace/actions/docker-login
- name: Login to GitHub Packages
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
logout: false
# https://github.com/marketplace/actions/setup-node-js-environment
- name: Setup Node Environment
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
# https://github.com/marketplace/actions/dev-container-build-and-run-action
- name: Pre-build Dev Container Image
uses: devcontainers/[email protected]
env:
# see: https://github.com/devcontainers/ci/issues/191#issuecomment-1603857155
BUILDX_NO_DEFAULT_ATTESTATIONS: true
PHP_VERSION: ${{ matrix.PHP_VERSION }}
NODE_VERSION: ${{ matrix.NODE_VERSION }}
with:
platform: linux/amd64,linux/arm64
imageName: ${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.PACKAGE }}
cacheFrom: ${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.PACKAGE }}
imageTag: php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}
push: never
skipContainerUserIdUpdate: true
#- name: Test Copying Container Image Archive
# run: |
# rm -f /tmp/php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}-${{ matrix.platform }}-oci.tar
# mv /tmp/output.tar /tmp/php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}-${{ matrix.platform }}-oci.tar
# https://github.com/marketplace/actions/upload-a-build-artifact
#- name: Upload Digests
# uses: actions/upload-artifact@v3
# with:
# name: ${{ env.PACKAGE }}-php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}-${{ matrix.platform }}
# path: /tmp/php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}-${{ matrix.platform }}-oci.tar
# if-no-files-found: error
# retention-days: 1
#download:
# name: Test Download Images
# needs: build
# permissions:
# contents: read
# packages: write
#strategy:
# fail-fast: false
# matrix:
# PHP_VERSION:
# - '8.0'
# - '8.3'
# NODE_VERSION:
# - '16'
# - '20'
#runs-on: ubuntu-latest
#concurrency:
# group: ${{ matrix.PHP_VERSION }}-${{ matrix.NODE_VERSION }}
#steps:
# https://github.com/marketplace/actions/download-a-build-artifact
#- name: Download Digests - amd64
# uses: actions/download-artifact@v3
# with:
# name: ${{ env.PACKAGE }}-php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}-amd64
# path: /tmp/${{ env.PACKAGE }}/php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}-amd64-oci.tar
# https://github.com/marketplace/actions/download-a-build-artifact
#- name: Download Digests - arm64
# uses: actions/download-artifact@v3
# with:
# name: ${{ env.PACKAGE }}-php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}-arm64
# path: /tmp/${{ env.PACKAGE }}/php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}-arm64-oci.tar
# https://github.com/marketplace/actions/docker-setup-buildx
#- name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
- name: List Artifact Downloads
run: ls -R
working-directory: /tmp
# https://github.com/marketplace/actions/docker-metadata-action
#- name: Docker Metadata
# uses: docker/metadata-action@v5
# id: metadata
# with:
# tags: type=raw,value=php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}
#- name: Create Manifest List & Image Locally
# working-directory: /tmp/${{ env.PACKAGE }}
# run: |
# docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
# $(printf '${{ env.PACKAGE }}@sha256:%s ' *)
#- name: Inspect Manifest List
# working-directory: /tmp/${{ env.PACKAGE }}
# run: |
# docker buildx imagetools inspect ${{ env.PACKAGE }}:php-${{ matrix.PHP_VERSION }}-node-${{ matrix.NODE_VERSION }}