Skip to content

refactor: Update devcontainer image name in build-devcontainer.yml #6

refactor: Update devcontainer image name in build-devcontainer.yml

refactor: Update devcontainer image name in build-devcontainer.yml #6

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 }}
# devnote : workflow variable github.repository can be accessed as shell variable GITHUB_REPOSITORY.
# the to lowercase conversion can be done using bash inline substitution by appending @L to the variable name
# example : "IONOS-WordPress/ionos-wordpress" will be converted to "ionos-wordpress/ionos-wordpress" and stored in environment variable IMAGE_NAME
- name: lowercase github.repository
run: |
echo "IMAGE_NAME=ghcr.io/${GITHUB_REPOSITORY@L}-devcontainer" >> ${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
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