Initial build.

This commit is contained in:
Carl Pearson
2024-09-30 13:32:55 -06:00
parent dad5b1272c
commit 51affb2be2
4 changed files with 94 additions and 1 deletions

39
.github/workflows/ghcr-push.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Deploy to GHCR
# only run most recent workflow in branch
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches: [ "master" ]
paths:
- '**/*.dockerfile'
jobs:
build-0.6.13:
name: Build + Publish 16
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
name: Checkout
- name: Set Environment
run: |
echo "SLUG=ghcr.io/cwpearson/cmake-format-0.6.13" >> $GITHUB_ENV
echo "DATE=$(date +"%Y%m%d")" >> $GITHUB_ENV
- name: Build
run: |
docker build -f cmake-format-0.6.13.dockerfile -t "$SLUG:latest" -t "$SLUG:$DATE" .
- name: Publish to GHCR
run: |
echo '${{secrets.GHCR_TOKEN}}' | docker login ghcr.io -u cwpearson --password-stdin
docker push "$SLUG:latest"
docker push "$SLUG:$DATE"

View File

@@ -1 +1,23 @@
# cmake-format # cmake-format
## Quick Run
```bash
cd your/source/tree
podman run --rm -v "${PWD}"/src ghcr.io/cwpearson/clang-format-16:latest clang-format ...
```
Inside the container, the working directory is /src, we use the volume mount to map the host working directory `${PWD}` into `/src`: `-v "${PWD}"/src`.
## Building the Image Locally
```bash
podman build -f cmake-format-0.6.13.dockerfile -t cmake-format-0.6.13:latest
podman run --rm -v "${PWD}"/src cmake-format-0.6.13:latest cmake-format ...
```
## Deploy
1. Create a "personal access token (classic)" with `write:packages`
* account > settings > developer settings > personal access tokens
2. Put that personal access token as the repository secret `GHCR_TOKEN`.

View File

@@ -0,0 +1,19 @@
# Stage 1: Build environment
FROM docker.io/redhat/ubi8 AS builder
LABEL maintainer="Carl Pearson <me@carlpearson.net>"
LABEL org.opencontainers.image.title="cmake-format 0.6"
LABEL description="A container with cmake-format 0.6"
LABEL org.opencontainers.image.description="A container with cmake-format 0.6"
LABEL org.opencontainers.image.source https://github.com/cwpearson/clang-format
LABEL org.opencontainers.image.licenses="GPLv3"
RUN dnf install -y \
python3 \
&& dnf clean all
ADD pip-install.sh .
RUN /bin/bash pip-install.sh
# expect caller to map $PWD into /src with -v flag
WORKDIR /src

13
pip-install.sh Normal file
View File

@@ -0,0 +1,13 @@
#! /bin/bash
set -eou pipefail
NEXUS_ROOT=https://nexus.web.sandia.gov/
if curl --output /dev/null --silent --head --fail "$NEXUS_ROOT"; then
PIP_ARGS="--index-url=$NEXUS_ROOT/repository/pypi-proxy/simple"
else
PIP_ARGS=""
fi
python3 -m pip install "$PIP_ARGS" cmakelang==0.6.13