Skip to content

features

features #211

Workflow file for this run

---
name: Build and Push devcontainer
on:
repository_dispatch:
types: [features]
workflow_dispatch:
push:
branches:
- main
paths:
- 'src/devcontainer/.devcontainer/devcontainer.json'
- 'src/devcontainer/devcontainer-template.json'
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true
jobs:
build-and-push:
timeout-minutes: 1440
runs-on: self-hosted
permissions:
contents: read
packages: write
steps:
- name: Checkout
id: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
# - name: Free Disk Space
# uses: jlumbroso/free-disk-space@main
# with:
# tool-cache: true
# - name: Free Disk Space Manual
# run: |
# sudo apt-get remove -y --allow-remove-essential aria2 shellcheck rpm xorriso \
# zsync gfortran-9 nginx shim-signed imagemagick libmagickcore-dev \
# libmagickwand-dev libmagic-dev ant ant-optional kubectl \
# mercurial apt-transport-https unixodbc-dev yarn libssl-dev snapd \
# libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev \
# snmp pollinate libpq-dev ruby-full subversion microsoft-edge-stable || true
# - name: Prepare environment
# run: |
# mkdir -p /home/runner/actions-runner/amerintlxperts/devcontainers/_work/_temp/runtime-dir
# echo "XDG_RUNTIME_DIR=/home/runner/actions-runner/amerintlxperts/devcontainers/_work/_temp/runtime-dir" >> $GITHUB_ENV
# chmod 700 /home/runner/actions-runner/amerintlxperts/devcontainers/_work/_temp/runtime-dir
# - name: Set up Docker
# uses: docker/setup-docker-action@v4
# with:
# rootless: true
# env:
# XDG_RUNTIME_DIR: /home/runner/actions-runner/amerintlxperts/devcontainers/_work/_temp/runtime-dir
# - name: 'Set up skopeo'
# uses: warjiang/setup-skopeo@71776e03c10d767c04af8924fe5a67763f9b3d34
- name: Set up QEMU for multi-architecture builds
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3
with:
platforms: "linux/amd64"
- name: Setup Docker buildx for multi-architecture builds
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb
with:
driver: docker-container
driver-opts: |
network=host
env:
BUILDX_NO_DEFAULT_ATTESTATIONS: 1
# - name: Set Docker Host
# run: echo "DOCKER_HOST=unix:///var/run/docker.sock" >> $GITHUB_ENV
- name: Log in to the Container registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
with:
registry: "ghcr.io"
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Node.js
uses: actions/setup-node@v4.2.0
with:
node-version: '18'
- name: Build container
run: |
npm install -g @devcontainers/cli
devcontainer build --workspace-folder src/devcontainer --image-name ghcr.io/${{ github.repository_owner }}/devcontainer --platform linux/amd64 --output type=docker --cache-from ghcr.io/amerintlxperts/devcontainer:latest
docker tag ghcr.io/amerintlxperts/devcontainer ghcr.io/amerintlxperts/devcontainer:latest
docker push ghcr.io/amerintlxperts/devcontainer:latest
# - name: Build devcontainer
# uses: devcontainers/ci@a56d055efecd725e8cfe370543b6071b79989cc8
# with:
# imageName: ghcr.io/${{ github.repository_owner }}/devcontainer
# cacheFrom: ghcr.io/${{ github.repository_owner }}/devcontainer
# subFolder: src/devcontainer
# platform: linux/amd64
# push: always
# env:
# BUILDX_NO_DEFAULT_ATTESTATIONS: 1