Compare commits
2 Commits
6d0bfeedaf
...
9808245f85
Author | SHA1 | Date |
---|---|---|
|
9808245f85 | |
|
4c7192582d |
|
@ -0,0 +1,4 @@
|
||||||
|
*
|
||||||
|
!src
|
||||||
|
!Cargo.toml
|
||||||
|
!Cargo.lock
|
|
@ -0,0 +1,25 @@
|
||||||
|
FROM registry.fedoraproject.org/fedora-minimal:39 AS build
|
||||||
|
|
||||||
|
RUN --mount=type=cache,target=/var/cache \
|
||||||
|
microdnf install -y \
|
||||||
|
--setopt install_weak_deps=0 \
|
||||||
|
cargo\
|
||||||
|
&& :
|
||||||
|
|
||||||
|
COPY . /src
|
||||||
|
|
||||||
|
WORKDIR /src
|
||||||
|
|
||||||
|
RUN cargo build --release --locked
|
||||||
|
|
||||||
|
|
||||||
|
FROM registry.fedoraproject.org/fedora-minimal:39
|
||||||
|
|
||||||
|
COPY --from=build /src/target/release/tmpl /usr/local/bin
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/tmpl"]
|
||||||
|
|
||||||
|
LABEL name='tmpl' \
|
||||||
|
vendor='Dustin C. Hatch' \
|
||||||
|
license='MIT OR APACHE-2.0' \
|
||||||
|
version='0.1.0'
|
|
@ -0,0 +1,64 @@
|
||||||
|
pipeline {
|
||||||
|
agent none
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage('tmpl') {
|
||||||
|
matrix {
|
||||||
|
axes {
|
||||||
|
axis {
|
||||||
|
name 'ARCH'
|
||||||
|
values 'amd64', 'arm64'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage('tmpl') {
|
||||||
|
agent {
|
||||||
|
kubernetes {
|
||||||
|
yamlFile 'podTemplate.yaml'
|
||||||
|
yamlMergeStrategy merge()
|
||||||
|
defaultContainer 'build'
|
||||||
|
nodeSelector "kubernetes.io/arch=${ARCH}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage {
|
||||||
|
stage('Build') {
|
||||||
|
steps {
|
||||||
|
sh '. ci/build.sh'
|
||||||
|
}
|
||||||
|
post {
|
||||||
|
success {
|
||||||
|
archiveArtifacts "${ARCH}/*"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Publish') {
|
||||||
|
env {
|
||||||
|
REGISTRY_AUTH_FILE = "${env.WORKSPACE_TMP}/auth.json"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
withCredentials([usernamePassword(
|
||||||
|
credentialsId: 'jenkins-packages',
|
||||||
|
usernameVariable: 'BUILDAH_USERNAME',
|
||||||
|
passwordVariable: 'BUILDAH_PASSWORD',
|
||||||
|
)]) {
|
||||||
|
sh """
|
||||||
|
buildah login \
|
||||||
|
--username \${BUILDAH_USERNAME} \
|
||||||
|
--password \${BUILDAH_PASSWORD} \
|
||||||
|
git.pyrocufflink.net
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
sh '. ci/publish.sh'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
. ci/common.sh
|
||||||
|
|
||||||
|
buildah push "${IMAGE_NAME}:${TAG}"
|
||||||
|
buildah push "${IMAGE_NAME}:${TAG}" "${IMAGE_NAME}:${TAG}-${BUILD_NUMBER}"
|
||||||
|
if [ ${BRANCH_NAME} = master ]; then
|
||||||
|
buildah push "${IMAGE_NAME}:${TAG}" "${IMAGE_NAME}:latest"
|
||||||
|
fi
|
|
@ -0,0 +1,13 @@
|
||||||
|
escape_name() {
|
||||||
|
echo "$1" \
|
||||||
|
| tr A-Z a-z \
|
||||||
|
| sed -e 's/[^a-zA-Z0-9._-]/-/g' -e 's/^[.-]/_/'
|
||||||
|
}
|
||||||
|
|
||||||
|
REGISTRY_URL=git.pyrocufflink.net
|
||||||
|
NAMESPACE=containerimages
|
||||||
|
NAME="${JOB_NAME#*/}"
|
||||||
|
NAME=$(escape_name "${NAME%/*}")
|
||||||
|
TAG=$(escape_name "${BRANCH_NAME}")
|
||||||
|
|
||||||
|
IMAGE_NAME="${REGISTRY_URL}/${NAMESPACE}/${NAME}"
|
|
@ -0,0 +1,3 @@
|
||||||
|
. ci/common.sh
|
||||||
|
|
||||||
|
buildah build -t "${IMAGE_NAME}:${TAG}" .
|
|
@ -303,14 +303,11 @@ fn checksum(path: impl AsRef<Path>) -> std::io::Result<Vec<u8>> {
|
||||||
let mut blake = Blake2b512::new();
|
let mut blake = Blake2b512::new();
|
||||||
loop {
|
loop {
|
||||||
let mut buf = vec![0u8; 16384];
|
let mut buf = vec![0u8; 16384];
|
||||||
match f.read_exact(&mut buf) {
|
let sz = f.read(&mut buf)?;
|
||||||
Ok(_) => blake.update(buf),
|
if sz == 0 {
|
||||||
Err(e) if e.kind() == std::io::ErrorKind::UnexpectedEof => {
|
|
||||||
blake.update(buf);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Err(e) => return Err(e),
|
blake.update(&buf[..sz]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Ok(blake.finalize().to_vec())
|
Ok(blake.finalize().to_vec())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue