mirror of https://github.com/bitnami/minideb.git
Remove snapshot logic
Signed-off-by: Carlos Rodriguez Hernandez <carlosrh@vmware.com>
This commit is contained in:
parent
064761b6d4
commit
a9d9039d03
|
|
@ -8,13 +8,6 @@ inputs:
|
|||
is_latest:
|
||||
description: The created dist is also latest
|
||||
default: false
|
||||
build_snapshot:
|
||||
description: Build snapshot build
|
||||
default: false
|
||||
outputs:
|
||||
snapshot-id:
|
||||
description: "Created snapshot id if requested to build it"
|
||||
value: ${{ steps.snapshot-id.outputs.snapshot-id }}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
|
|
@ -36,21 +29,11 @@ runs:
|
|||
echo "QEMU is not required for platform ${{ inputs.platform }}"
|
||||
fi
|
||||
shell: bash
|
||||
- name: Build snapshot id
|
||||
id: snapshot-id
|
||||
run: |
|
||||
if ${{ inputs.build_snapshot }} ; then
|
||||
echo "::set-output name=snapshot-id::$(./snapshot_id)"
|
||||
fi
|
||||
shell: bash
|
||||
- name: "Build image"
|
||||
run: |
|
||||
set -x
|
||||
echo Building ${{ inputs.dist }} - ${{ inputs.platform }}
|
||||
sudo -E bash -x buildone "${{ inputs.dist }}" "${{ inputs.platform }}"
|
||||
if ${{ inputs.build_snapshot }} ; then
|
||||
sudo -E bash -x buildone_snapshot "${{ inputs.dist }}" "${{ steps.snapshot-id.outputs.snapshot-id }}" "${{ inputs.platform }}"
|
||||
fi
|
||||
if ${{ inputs.is_latest }} ; then
|
||||
BASENAME=${BASENAME:?Undefined or empty BASENAME}
|
||||
echo "Tagging latest"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ on:
|
|||
env:
|
||||
BASENAME: bitnami/minideb
|
||||
LATEST: bullseye
|
||||
DIST_WITH_SNAPSHOT: buster
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
|
|
@ -56,7 +55,6 @@ jobs:
|
|||
dist: "${{ matrix.dist }}"
|
||||
platform: "${{ matrix.arch }}"
|
||||
is_latest: ${{ matrix.dist == env.LATEST }}
|
||||
build_snapshot: ${{ matrix.dist == env.DIST_WITH_SNAPSHOT }}
|
||||
- name: Push
|
||||
if: github.ref == 'refs/heads/master'
|
||||
env:
|
||||
|
|
@ -69,9 +67,6 @@ jobs:
|
|||
if ${{ matrix.dist == env.LATEST }} ; then
|
||||
bash pushone "latest" "${{ matrix.arch }}"
|
||||
fi
|
||||
if ${{ matrix.dist == env.DIST_WITH_SNAPSHOT }} ; then
|
||||
bash pushone "${{ matrix.dist }}-snapshot-${{ steps.build.outputs.snapshot-id }}" "${{ matrix.arch }}"
|
||||
fi
|
||||
|
||||
deploy_manifests:
|
||||
runs-on: ubuntu-22.04
|
||||
|
|
|
|||
13
buildall
13
buildall
|
|
@ -11,22 +11,9 @@ arch=${1:-"amd64 arm64"}
|
|||
dist="buster
|
||||
bullseye
|
||||
"
|
||||
dist_with_snapshot="buster"
|
||||
|
||||
for a in $arch; do
|
||||
for i in $dist; do
|
||||
./buildone "$i" "$a"
|
||||
done
|
||||
done
|
||||
|
||||
snapshot_id=$(./snapshot_id)
|
||||
if [ -n "$snapshot_id" ]; then
|
||||
for a in $arch; do
|
||||
for i in $dist_with_snapshot; do
|
||||
./buildone_snapshot "$i" "$snapshot_id" "$a"
|
||||
done
|
||||
|
||||
mkdir -p "build/$a"
|
||||
echo "$snapshot_id" > "build/$a/snapshot_id"
|
||||
done
|
||||
fi
|
||||
|
|
|
|||
10
buildone
10
buildone
|
|
@ -44,13 +44,7 @@ log() {
|
|||
build() {
|
||||
DIST=$1
|
||||
PLATFORM=${2:-amd64}
|
||||
|
||||
debian_snapshot_id=${3:-}
|
||||
if [ -n "$debian_snapshot_id" ]; then
|
||||
TAG="${DIST}-snapshot-${debian_snapshot_id}-$PLATFORM"
|
||||
else
|
||||
TAG=$DIST-$PLATFORM
|
||||
fi
|
||||
|
||||
[ -f "debootstrap/$DIST" ] || (echo "buildall: Unknown distribution: $DIST" && exit 1)
|
||||
current_ts="$(date -u +%Y-%m-%dT%H:%M:%S.%NZ)"
|
||||
|
|
@ -64,7 +58,7 @@ build() {
|
|||
log "============================================"
|
||||
log "Building $BASENAME:$TAG"
|
||||
log "============================================"
|
||||
./mkimage "build/$TAG.tar" "$DIST" "$PLATFORM" "${debian_snapshot_id:-}"
|
||||
./mkimage "build/$TAG.tar" "$DIST" "$PLATFORM"
|
||||
built_image_id=$(./import "build/$TAG.tar" "$target_ts" "$PLATFORM")
|
||||
log "============================================"
|
||||
log "Running tests for $BASENAME:$TAG"
|
||||
|
|
@ -73,7 +67,7 @@ build() {
|
|||
log "============================================"
|
||||
log "Rebuilding $BASENAME:$TAG to test reproducibility"
|
||||
log "============================================"
|
||||
./mkimage "build/${TAG}-repro.tar" "$DIST" "$PLATFORM" "${debian_snapshot_id:-}"
|
||||
./mkimage "build/${TAG}-repro.tar" "$DIST" "$PLATFORM"
|
||||
repro_image_id=$(./import "build/${TAG}-repro.tar" "$target_ts" "$PLATFORM")
|
||||
if [ "$repro_image_id" != "$built_image_id" ]; then
|
||||
log "$BASENAME:$TAG differs after a rebuild. Examine $built_image_id and $repro_image_id"
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
dist=${1:?dist arg is required}
|
||||
snapshot_id=${2:-$(./snapshot_id)}
|
||||
platform=${3:-amd64}
|
||||
|
||||
./buildone "$dist" "$platform" "$snapshot_id"
|
||||
6
mkimage
6
mkimage
|
|
@ -8,7 +8,6 @@ ROOT=$(cd "$(dirname "$0")" && pwd)
|
|||
TARGET=${1:?Specify the target filename}
|
||||
DIST=${2:-stable}
|
||||
PLATFORM=${3:-$(dpkg --print-architecture)}
|
||||
SNAPSHOT_ID=${4:-}
|
||||
|
||||
LOGFILE=${TARGET}.log
|
||||
|
||||
|
|
@ -78,11 +77,6 @@ rootfs_chroot bash debootstrap/debootstrap --second-stage
|
|||
repo_url="http://deb.debian.org/debian"
|
||||
sec_repo_url="http://security.debian.org/"
|
||||
|
||||
if [ -n "$SNAPSHOT_ID" ]; then
|
||||
repo_url="http://snapshot.debian.org/archive/debian/${SNAPSHOT_ID}/"
|
||||
sec_repo_url="http://snapshot.debian.org/archive/debian-security/${SNAPSHOT_ID}/"
|
||||
fi
|
||||
|
||||
echo -e "deb ${repo_url} $DIST main" > "$rootfsDir/etc/apt/sources.list"
|
||||
if [ "$DIST" == "bullseye" ]; then
|
||||
echo "deb ${repo_url} $DIST-updates main" >> "$rootfsDir/etc/apt/sources.list"
|
||||
|
|
|
|||
10
pushall
10
pushall
|
|
@ -7,7 +7,6 @@ set -o pipefail
|
|||
DISTS="buster
|
||||
bullseye
|
||||
"
|
||||
DISTS_WITH_SNAPSHOT="buster"
|
||||
LATEST=bullseye
|
||||
BASENAME=bitnami/minideb
|
||||
|
||||
|
|
@ -34,15 +33,6 @@ for DIST in $DISTS; do
|
|||
push "$DIST"
|
||||
done
|
||||
|
||||
if [ -f "build/snapshot_id" ]; then
|
||||
snapshot_id=$(cat build/snapshot_id)
|
||||
|
||||
for DIST in $DISTS_WITH_SNAPSHOT; do
|
||||
TAG="${DIST}-snapshot-${snapshot_id}"
|
||||
push "${TAG}"
|
||||
done
|
||||
fi
|
||||
|
||||
docker tag "${BASENAME}:${LATEST}" "${BASENAME}:latest"
|
||||
|
||||
push latest
|
||||
|
|
|
|||
|
|
@ -9,11 +9,9 @@ bullseye
|
|||
latest
|
||||
"}
|
||||
|
||||
DISTS_WITH_SNAPSHOT=${DISTS_WITH_SNAPSHOT:-buster}
|
||||
BASENAME=bitnami/minideb
|
||||
PLATFORMS=${PLATFORMS:-amd64 arm64}
|
||||
DRY_RUN=${DRY_RUN:-}
|
||||
SNAPSHOT_ID=${SNAPSHOT_ID:-}
|
||||
read -r -a ARCHS <<<"$PLATFORMS"
|
||||
|
||||
run_docker() {
|
||||
|
|
@ -60,9 +58,6 @@ tags=()
|
|||
|
||||
for DIST in $DISTS; do
|
||||
tags+=("$DIST")
|
||||
if list_includes "$DISTS_WITH_SNAPSHOT" "$DIST" ; then
|
||||
tags+=("$DIST-snapshot-${SNAPSHOT_ID:-$(./snapshot_id)}")
|
||||
fi
|
||||
done
|
||||
|
||||
repositories=("$BASENAME")
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@ fi
|
|||
|
||||
DIST=$1
|
||||
PLATFORM=${2:-amd64}
|
||||
DEBIAN_SNAPSHOT_ID=${3:-}
|
||||
|
||||
make .installed-qemu
|
||||
mkdir -p .kvm-images/{amd64,arm64}
|
||||
|
|
@ -145,7 +144,7 @@ do_ssh "apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.
|
|||
rsync -avz -e "ssh -o 'StrictHostKeyChecking=no' -o 'UserKnownHostsFile=/dev/null' -p 5555 -i $pub_key_dir/id_rsa" --exclude ".git" --exclude ".installed-requirements" --exclude ".kvm-images" --exclude "build" --exclude "ssh" ./ "root@localhost:/build/."
|
||||
do_ssh "cd /build/ && make .installed-requirements"
|
||||
|
||||
do_ssh "cd /build/ && ./buildone \"$DIST\" \"$PLATFORM\" \"$DEBIAN_SNAPSHOT_ID\""
|
||||
do_ssh "cd /build/ && ./buildone \"$DIST\" \"$PLATFORM\""
|
||||
rsync -avz -e "ssh -o 'StrictHostKeyChecking=no' -o 'UserKnownHostsFile=/dev/null' -p 5555 -i $pub_key_dir/id_rsa" "root@localhost:/build/build/$DIST.tar" "./$TARGET_FILE"
|
||||
|
||||
current_ts="$(date -u +%Y-%m-%dT%H:%M:%S.%NZ)"
|
||||
|
|
|
|||
40
snapshot_id
40
snapshot_id
|
|
@ -1,40 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
snapshot_tmp_dir=$(mktemp -d)
|
||||
mkdir -p "${snapshot_tmp_dir}"
|
||||
|
||||
get_latest_month_query() {
|
||||
local -r snapshot_archive_tmp_file="${snapshot_tmp_dir}/archive.html"
|
||||
|
||||
curl -sSfL "https://snapshot.debian.org/archive/debian/" > "$snapshot_archive_tmp_file"
|
||||
|
||||
local -r month_query_regex="(\?year=\d\d\d\d&month=\d+)"
|
||||
local -r month_query=$(grep -Po "${month_query_regex}" "${snapshot_archive_tmp_file}" | tail -1)
|
||||
|
||||
[[ -z "$month_query" ]] && echo "Not found snapshots using the following regex: ${month_query_regex}" && return 1
|
||||
|
||||
echo "$month_query"
|
||||
}
|
||||
|
||||
get_latest_debian_snapshot_id() {
|
||||
local -r snapshot_list_tmp_file="${snapshot_tmp_dir}/month-snapshots.html"
|
||||
|
||||
! month_query=$(get_latest_month_query) && return 1
|
||||
month_query=${month_query/&month=/&month=}
|
||||
|
||||
curl -sSfL "https://snapshot.debian.org/archive/debian/$month_query" > "$snapshot_list_tmp_file"
|
||||
|
||||
local -r snapshot_id_regex="(\d+T.*Z)"
|
||||
local -r snapshot_id=$(grep -Po "${snapshot_id_regex}" "${snapshot_list_tmp_file}" | tail -1)
|
||||
|
||||
[[ -z "$snapshot_id" ]] && echo "Not found snapshot id using the following regex: ${snapshot_id_regex}" && return 1
|
||||
|
||||
echo "$snapshot_id"
|
||||
}
|
||||
|
||||
get_latest_debian_snapshot_id
|
||||
rm -rf "${snapshot_tmp_dir}"
|
||||
Loading…
Reference in New Issue