Skip to content

Commit

Permalink
Initial commit of pre-built container GitHub Action (#35)
Browse files Browse the repository at this point in the history
  • Loading branch information
0xg0nz0 authored Apr 13, 2024
1 parent 7186272 commit 9f0c2af
Show file tree
Hide file tree
Showing 5 changed files with 95 additions and 33 deletions.
34 changes: 1 addition & 33 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,38 +1,6 @@
{
"name": "Iggy C++ Client",
"build": {
"dockerfile": "Dockerfile"
},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers-contrib/features/act:1": {},
"ghcr.io/devcontainers-contrib/features/apt-packages": {
"packages": [
"autoconf",
"autoconf-archive",
"automake",
"build-essential",
"clang-format",
"clang-tidy",
"doxygen",
"gcovr",
"graphviz",
"lcov",
"libtool",
"ninja-build",
"python3",
"xdg-utils"
]
},
"ghcr.io/devcontainers-contrib/features/markdownlint-cli2:1": {},
"ghcr.io/devcontainers-contrib/features/pre-commit:2": {},
"ghcr.io/dhoeric/features/hadolint:1": {},
"ghcr.io/msclock/features/vcpkg:1": {
"vcpkgversion": "stable"
}
},
"image": "docker.io/iggyrs/iggy-cpp-build:latest",
"customizations": {
"vscode": {
"extensions": [
Expand Down
49 changes: 49 additions & 0 deletions .github/workflows/devcontainer-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
name: devcontainer-ci

on:
push:
paths:
- .github/workflows/devcontainer-ci.yml
- images/iggy-cpp-build/.devcontainer/*

env:
DOCKERHUB_REGISTRY_NAME: iggyrs/iggy-cpp-build

permissions: read-all

jobs:
pre-build-container:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Setup Docker buildx for multi-architecture builds
uses: docker/setup-buildx-action@v3
with:
use: true
- name: Install updated Skopeo
# This can be omitted once runner images have a version of Skopeo > 1.4.1
# See https://github.com/containers/skopeo/issues/1874
run: |
REPO_URL="https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_22.04"
sudo sh -c "echo 'deb ${REPO_URL}/ /' > /etc/apt/sources.list.d/skopeo.list"
curl -fsSL ${REPO_URL}/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/skopeo.gpg > /dev/null
sudo apt update
sudo apt install skopeo
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Pre-build image
uses: devcontainers/[email protected]
with:
subFolder: images/iggy-cpp-build
imageName: ${{ env.DOCKERHUB_REGISTRY_NAME }}
cacheFrom: ${{ env.DOCKERHUB_REGISTRY_NAME }}
platform: linux/amd64,linux/arm64
push: always
4 changes: 4 additions & 0 deletions images/iggy-cpp-build/.devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM mcr.microsoft.com/devcontainers/cpp:1-ubuntu-22.04

# workaround for msclock build issue on arm
ENV VCPKG_FORCE_SYSTEM_BINARIES=1
35 changes: 35 additions & 0 deletions images/iggy-cpp-build/.devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"build": {
"dockerfile": "Dockerfile"
},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers-contrib/features/act:1": {},
"ghcr.io/devcontainers-contrib/features/apt-packages": {
"packages": [
"autoconf",
"autoconf-archive",
"automake",
"build-essential",
"clang-format",
"clang-tidy",
"doxygen",
"gcovr",
"graphviz",
"lcov",
"libtool",
"ninja-build",
"python3",
"xdg-utils"
]
},
"ghcr.io/devcontainers-contrib/features/markdownlint-cli2:1": {},
"ghcr.io/devcontainers-contrib/features/pre-commit:2": {},
"ghcr.io/dhoeric/features/hadolint:1": {},
"ghcr.io/msclock/features/vcpkg:1": {
"vcpkgversion": "stable"
}
}
}
6 changes: 6 additions & 0 deletions images/iggy-cpp-build/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

# Iggy C++ Build Container

This directory contains the source for the pre-built devcontainer referenced in `.devcontainer` at the top level.

Under normal circumstances you should not need to modify or load this; it gets build in a dedicated GitHub Action.

0 comments on commit 9f0c2af

Please sign in to comment.