Skip to content

Commit

Permalink
fix merge conflicts (#9)
Browse files Browse the repository at this point in the history
Co-authored-by: oklopfer <[email protected]>
Co-authored-by: ook37 <[email protected]>
Co-authored-by: Elsie <[email protected]>
Co-authored-by: Elsie <[email protected]>
Co-authored-by: V <[email protected]>
Co-authored-by: David Brochero <[email protected]>
fix({download,install}-local.sh): use more `clean_fail_down` (pacstall#1043)
fix(search.sh): mapfile append (pacstall#1049)
fix(upgrade.sh): export `CARCH` & `DISTRO` (pacstall#1047)
  • Loading branch information
6 people authored Mar 8, 2024
1 parent 70b34be commit d71403c
Show file tree
Hide file tree
Showing 10 changed files with 582 additions and 259 deletions.
166 changes: 166 additions & 0 deletions .github/workflows/publish-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
name: Publish Pacstall Docker Images

on:
workflow_dispatch:
inputs:
vertag:
description: 'Version Tag'
required: false
push:
branches:
- develop
- master
tags:
- '*'
env:
INPUT_VERTAG: ${{ github.event.inputs.vertag }}
REGISTRY: ghcr.io

jobs:

build:
strategy:
matrix:
OS: ["ubuntu:latest", "ubuntu:devel", "ubuntu:rolling", "debian:stable", "debian:testing", "debian:unstable"]
platform: ["linux/amd64", "linux/arm64"]
fail-fast: true
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build Dockerfile
run: |
vertag=${{ env.INPUT_VERTAG }}
if [[ -z ${vertag} ]]; then
vertag=${{ github.ref_name }}
fi
platform=${{ matrix.platform }}
arch=${platform#*/}
distro=${{ matrix.OS }}
distro_tag="${distro/:/-}"
curl -fsSL https://raw.githubusercontent.com/pacstall/docker/master/pacstall-docker-builder -o pacstall-docker-builder
chmod +x pacstall-docker-builder
./pacstall-docker-builder -f -a ${arch} -d ${distro} -v ${vertag}
echo "BUILT_DOCKFILE=Dockerfile-Pacstall-${vertag}-${arch}-${distro_tag}-$(date +%Y%m%d)" >> $GITHUB_ENV
echo "DOCK_LABEL=${vertag}" >> $GITHUB_ENV
echo "PLATFORM_PAIR=${distro_tag}-${arch}" >> $GITHUB_ENV
echo "REGISTRY_IMAGE=${{ env.REGISTRY }}/${{ github.repository_owner }}/${distro_tag}" >> $GITHUB_ENV
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: |
type=raw,value=${{ env.DOCK_LABEL }}
flavor: latest=true

- name: Login to registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push by digest
id: build
uses: docker/build-push-action@v5
with:
context: .
file: ./${{ env.BUILT_DOCKFILE }}
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true

- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1

merge:
strategy:
matrix:
OS: ["ubuntu:latest", "ubuntu:devel", "ubuntu:rolling", "debian:stable", "debian:testing", "debian:unstable"]
fail-fast: true
runs-on: ubuntu-latest
needs: [build]
steps:
- name: Load envars
run: |
vertag=${{ env.INPUT_VERTAG }}
if [[ -z ${vertag} ]]; then
vertag=${{ github.ref_name }}
fi
distro=${{ matrix.OS }}
distro_tag="${distro/:/-}"
echo "DOCK_LABEL=${vertag}" >> $GITHUB_ENV
if [[ ${vertag} == "develop" ]]; then
echo "FLAVOR_LATEST=false" >> $GITHUB_ENV
echo "HASH_DOCK_LABEL=${vertag}-${GITHUB_SHA:0:8}" >> $GITHUB_ENV
elif [[ ${vertag} == "master" ]]; then
echo "FLAVOR_LATEST=true" >> $GITHUB_ENV
echo "HASH_DOCK_LABEL=${vertag}-${GITHUB_SHA:0:8}" >> $GITHUB_ENV
else
echo "FLAVOR_LATEST=true" >> $GITHUB_ENV
fi
echo "DISTRO_TAG=${distro_tag}" >> $GITHUB_ENV
echo "REGISTRY_IMAGE=${{ env.REGISTRY }}/${{ github.repository_owner }}/${distro_tag}" >> $GITHUB_ENV
- name: Download digests
uses: actions/download-artifact@v4
with:
path: /tmp/digests
pattern: digests-${{ env.DISTRO_TAG }}*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: v0.12.0

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: |
type=raw,value=${{ env.DOCK_LABEL }}
type=raw,value=${{ env.HASH_DOCK_LABEL }}
flavor: latest=${{ env.FLAVOR_LATEST }}

- name: Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Create manifest list and push
working-directory: /tmp/digests
run: |
docker buildx imagetools create \
--annotation "index:org.opencontainers.image.description=Contains amd64/x86_64 + arm64/aarch64 pacstall:${{ env.DOCK_LABEL }} images for ${{ matrix.OS }}, from $(date +%Y%m%d)." \
$(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
6 changes: 3 additions & 3 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -117,16 +117,16 @@ apt-get install -qq -y curl wget build-essential unzip git zstd iputils-ping lsb

LOGDIR="/var/lib/pacstall/metadata"
STGDIR="/usr/share/pacstall"
SRCDIR="/tmp/pacstall"
PACDIR="/tmp/pacstall"
PACSTALL_USER=$(logname 2> /dev/null || echo "${SUDO_USER:-${USER}}")

fancy_message info "Making directories"
mkdir -p "$STGDIR"
mkdir -p "$STGDIR/scripts"
mkdir -p "$STGDIR/repo"

mkdir -p "$SRCDIR"
chown "$PACSTALL_USER" -R "$SRCDIR"
mkdir -p "$PACDIR"
chown "$PACSTALL_USER" -R "$PACDIR"

mkdir -p "$LOGDIR"
mkdir -p "/var/log/pacstall/error_log"
Expand Down
Loading

0 comments on commit d71403c

Please sign in to comment.