mirror of
https://github.com/bitnami/minideb.git
synced 2026-06-04 10:13:55 +08:00
119 lines
4.9 KiB
YAML
119 lines
4.9 KiB
YAML
language: bash
|
|
dist: focal
|
|
virt: vm
|
|
group: edge
|
|
os: linux
|
|
services:
|
|
- docker
|
|
|
|
env:
|
|
global:
|
|
- BASENAME=bitnami/minideb
|
|
- LATEST=buster
|
|
- DISTS_WITH_SNAPSHOT="$LATEST"
|
|
|
|
.build_job: &build_job
|
|
stage: build
|
|
before_install:
|
|
- docker version
|
|
# Fix for Ubuntu Xenial apt-daily.service triggering
|
|
# https://unix.stackexchange.com/questions/315502/how-to-disable-apt-daily-service-on-ubuntu-cloud-vm-image
|
|
- |
|
|
while sudo fuser /var/{lib/{dpkg,apt/lists},cache/apt/archives}/lock >/dev/null 2>&1; do
|
|
sleep 1
|
|
done
|
|
- sudo rm -f /usr/local/bin/jq
|
|
install:
|
|
- sudo make .installed-requirements
|
|
script:
|
|
- sudo bash buildone $DIST $PLATFORM
|
|
- 'if [[ "$TRAVIS_BRANCH" == "master" && "$DISTS_WITH_SNAPSHOT" =~ (^|[[:space:]])"$DIST"($|[[:space:]]) ]] ; then sudo bash buildone_snapshot $DIST "$(./snapshot_id)" $PLATFORM ; fi'
|
|
after_success:
|
|
- 'if [[ "$TRAVIS_BRANCH" == "master" && "$LATEST" == "$DIST" ]] ; then sudo docker tag "$BASENAME:$DIST-$PLATFORM" "$BASENAME:latest-$PLATFORM" ; fi'
|
|
- 'if [[ "$TRAVIS_BRANCH" == "master" ]] ; then sudo bash pushone $DIST $PLATFORM ; fi'
|
|
- 'if [[ "$TRAVIS_BRANCH" == "master" && "$DISTS_WITH_SNAPSHOT" =~ (^|[[:space:]])"$DIST"($|[[:space:]]) ]] ; then sudo bash pushone "$DIST-snapshot-$(./snapshot_id)" $PLATFORM ; fi'
|
|
- 'if [[ "$TRAVIS_BRANCH" == "master" && "$LATEST" == "$DIST" ]] ; then sudo bash pushone latest $PLATFORM ; fi'
|
|
|
|
jobs:
|
|
include:
|
|
- stage: shellcheck
|
|
install:
|
|
- sudo apt-get -qq update
|
|
- sudo apt-get install -y shellcheck
|
|
script: bash shellcheck
|
|
- <<: *build_job
|
|
arch: amd64
|
|
env:
|
|
- DIST=jessie PLATFORM=amd64
|
|
- <<: *build_job
|
|
arch: amd64
|
|
env:
|
|
- DIST=stretch PLATFORM=amd64
|
|
- <<: *build_job
|
|
arch: amd64
|
|
env:
|
|
- DIST=buster PLATFORM=amd64
|
|
- <<: *build_job
|
|
arch: arm64-graviton2
|
|
env:
|
|
- DIST=stretch PLATFORM=arm64
|
|
- <<: *build_job
|
|
arch: arm64-graviton2
|
|
env:
|
|
- DIST=buster PLATFORM=arm64
|
|
- stage: deploy
|
|
if: branch = master AND type = push
|
|
env:
|
|
- DISTS="stretch buster latest"
|
|
before_install: mkdir $HOME/.docker
|
|
install: 'echo "{ \"experimental\": \"enabled\" }" > $HOME/.docker/config.json'
|
|
script:
|
|
- |
|
|
if [ -n "${DOCKER_PASSWORD:-}" ]; then
|
|
docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD"
|
|
fi
|
|
|
|
# Create and merge a PR to update minideb-extras
|
|
CIRCLE_CI_FUNCTIONS_URL=${CIRCLE_CI_FUNCTIONS_URL:-https://raw.githubusercontent.com/bitnami/test-infra/master/circle/functions}
|
|
source <(curl -sSL "$CIRCLE_CI_FUNCTIONS_URL")
|
|
for DIST in $DISTS ; do
|
|
sudo docker manifest create $BASENAME:$DIST $BASENAME:$DIST-amd64 $BASENAME:$DIST-arm64
|
|
sudo docker manifest push $BASENAME:$DIST
|
|
|
|
if [[ "$DISTS_WITH_SNAPSHOT" =~ (^|[[:space:]])"$DIST"($|[[:space:]]) ]] ; then
|
|
SNAPSHOT_NAME="$DIST-snapshot-$(./snapshot_id)"
|
|
sudo docker manifest create $BASENAME:$SNAPSHOT_NAME $BASENAME:$SNAPSHOT_NAME-amd64 $BASENAME:$SNAPSHOT_NAME-arm64
|
|
sudo docker manifest push $BASENAME:$SNAPSHOT_NAME
|
|
fi
|
|
if [ -n "${DISABLE_UPDATE_DERIVED:-}" ]; then
|
|
echo "Disabling update_minideb_derived step per configuration"
|
|
else
|
|
# Use '.RepoDigests 0' for getting Dockerhub repo digest as it was the first pushed
|
|
DIST_REPO_DIGEST="$BASENAME"@$(docker manifest inspect "$BASENAME:${DIST}" | jq -r .manifests[0].digest)
|
|
update_minideb_derived "https://github.com/$BASENAME-runtimes" "$DIST" "$DIST_REPO_DIGEST"
|
|
fi
|
|
done
|
|
- stage: deploy
|
|
if: branch = master AND type = push
|
|
env:
|
|
- DIST="jessie"
|
|
before_install: mkdir $HOME/.docker
|
|
install: 'echo "{ \"experimental\": \"enabled\" }" > $HOME/.docker/config.json'
|
|
script:
|
|
- |
|
|
if [ -n "${DOCKER_PASSWORD:-}" ]; then
|
|
docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD"
|
|
fi
|
|
# Create and merge a PR to update minideb-extras
|
|
CIRCLE_CI_FUNCTIONS_URL=${CIRCLE_CI_FUNCTIONS_URL:-https://raw.githubusercontent.com/bitnami/test-infra/master/circle/functions}
|
|
source <(curl -sSL "$CIRCLE_CI_FUNCTIONS_URL")
|
|
sudo docker manifest create $BASENAME:$DIST $BASENAME:$DIST-amd64
|
|
sudo docker manifest push $BASENAME:$DIST
|
|
if [ -n "${DISABLE_UPDATE_DERIVED:-}" ]; then
|
|
echo "Disabling update_minideb_derived step per configuration"
|
|
else
|
|
# Use '.RepoDigests 0' for getting Dockerhub repo digest as it was the first pushed
|
|
DIST_REPO_DIGEST="$BASENAME"@$(docker manifest inspect "$BASENAME:${DIST}" | jq -r .manifests[0].digest)
|
|
update_minideb_derived "https://github.com/$BASENAME-runtimes" "$DIST" "$DIST_REPO_DIGEST"
|
|
fi
|