Skip to content

fix(devcontainer-base): validate base updates before publishing #60

fix(devcontainer-base): validate base updates before publishing

fix(devcontainer-base): validate base updates before publishing #60

---
name: Build Devcontainer Base Image
on: # yamllint disable-line rule:truthy
pull_request:
branches:
- main
paths:
- .github/workflows/image-devcontainer-base.yml
- images/devcontainer-base/**
push:
branches:
- main
paths:
- .github/workflows/image-devcontainer-base.yml
- images/devcontainer-base/**
schedule:
- cron: "0 0 * * 0" # Triggers every Sunday at midnight UTC
concurrency:
cancel-in-progress: true
group: devcontainer-base-${{ github.ref }}
jobs:
build-container:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout Repo
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Login to GitHub Container Registry
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Generate Metadata
uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6.2.0
id: metadata
with:
images: ghcr.io/${{ github.repository_owner }}/devcontainer-base
- name: Build Candidate Image
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
with:
context: images/devcontainer-base
file: images/devcontainer-base/Containerfile
load: true
push: false
tags: ghcr.io/${{ github.repository_owner }}/devcontainer-base:latest
- name: Select Candidate Image
run: |
sed -i \
's|^FROM ghcr.io/marinatedconcrete/devcontainer-base:latest.*$|FROM ghcr.io/marinatedconcrete/devcontainer-base:latest|' \
.devcontainer/Containerfile
- name: Validate Downstream Checks
uses: devcontainers/ci@513af61f4de4f75d37e4438f184ba4358f0fc1ca # v0.3.1900000450
with:
cacheFrom: ghcr.io/marinatedconcrete/config-devcontainer
env: |
CI=1
imageName: config-devcontainer-candidate
push: never
runCmd: just check-format && just lint && just test
- name: Push Tested Image
if: github.event_name != 'pull_request'
run: docker push ghcr.io/${{ github.repository_owner }}/devcontainer-base:latest