Skip to content

refactor: Update devcontainer image name construction in build-devcon… #10

refactor: Update devcontainer image name construction in build-devcon…

refactor: Update devcontainer image name construction in build-devcon… #10

name: 'build devcontainer image'
on:
# rebuild any PRs and main branch changes
pull_request:
push:
branches:
- main
- develop
permissions:
# write-all is too much, but we need to write to packages
# see https://github.com/orgs/community/discussions/57724 for more info
contents: read
packages: write
attestations: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout (GitHub)
uses: actions/checkout@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: build image name
run: |
# construct IMAGE_NAME from repo owner/name and branch
# example value : "ghcr.io/IONOS-Wordpress/ionos-wordpress-develop-devcontainer"
IMAGE_NAME="ghcr.io/${GITHUB_REPOSITORY}-${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}-devcontainer"
# convert imagename to lowercase and store as environment variable
echo "IMAGE_NAME=${IMAGE_NAME@L}" >> "${GITHUB_ENV}"
- name: Pre-build image and run make ci-build in dev container
uses: devcontainers/ci@v0.3
with:
# push image only if the branch is main and the event is push
push: filter
refFilterForPush: refs/heads/main refs/heads/develop
# "push" is already the default
# eventFilterForPush: push
# name of the pushed image (example : "ghcr.io/wordpress-ionos/wordpress-ionos-devcontainer")
imageName: ${{ env.IMAGE_NAME }}
# make some tests to test the devcontainer image is working
runCmd: |
# test if pnpm is properly installed
command -v pnpm
# test if devcontainer environment is properly set
env | grep WP_ENV_HOME