mirror of
https://github.com/tiredofit/docker-collabora-online.git
synced 2024-05-04 07:23:11 +02:00
128 lines
4.5 KiB
YAML
128 lines
4.5 KiB
YAML
### Application Level Image CI
|
|
### Dave Conroy <dave at tiredofit dot ca>
|
|
|
|
name: 'build'
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- '**'
|
|
- '!README.md'
|
|
|
|
jobs:
|
|
docker:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# - name: FreeUp
|
|
# id: free
|
|
# run: |
|
|
# before=$(df -a $1 | awk 'NR > 1 {avail+=$4} END {print avail}')
|
|
# sudo apt-get remove -y '^dotnet-.*'
|
|
# sudo apt-get remove -y '^llvm-.*'
|
|
# sudo apt-get remove -y 'php.*'
|
|
# sudo apt-get remove -y '^mongodb-.*'
|
|
# sudo apt-get remove -y '^mysql-.*'
|
|
# sudo apt-get remove -y azure-cli google-cloud-sdk hhvm google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri
|
|
# sudo apt-get -y autoremove
|
|
# sudo apt-get clean
|
|
# after=$(df -a $1 | awk 'NR > 1 {avail+=$4} END {print avail}')
|
|
# saved=$((after-before))
|
|
# echo "Saved: $saved"
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Prepare
|
|
id: prep
|
|
run: |
|
|
DOCKER_IMAGE=${GITHUB_REPOSITORY/docker-/}
|
|
if [[ $GITHUB_REF == refs/heads/* ]]; then
|
|
if [[ $GITHUB_REF == refs/heads/*/* ]] ; then
|
|
BRANCH="${DOCKER_IMAGE}:$(echo $GITHUB_REF | sed "s|refs/heads/||g" | sed "s|/|-|g")"
|
|
else
|
|
BRANCH=${GITHUB_REF#refs/heads/}
|
|
fi
|
|
|
|
case ${BRANCH} in
|
|
"main" | "master" )
|
|
BRANCHTAG="${DOCKER_IMAGE}:latest"
|
|
;;
|
|
"develop" )
|
|
BRANCHTAG="${DOCKER_IMAGE}:develop"
|
|
;;
|
|
* )
|
|
if [ -n "${{ secrets.LATEST }}" ] ; then
|
|
if [ "${BRANCHTAG}" = "${{ secrets.LATEST }}" ]; then
|
|
BRANCHTAG="${DOCKER_IMAGE}:${BRANCH},${DOCKER_IMAGE}:${BRANCH}-latest,${DOCKER_IMAGE}:latest"
|
|
else
|
|
BRANCHTAG="${DOCKER_IMAGE}:${BRANCH},${DOCKER_IMAGE}:${BRANCH}-latest"
|
|
fi
|
|
else
|
|
BRANCHTAG="${DOCKER_IMAGE}:${BRANCH},${DOCKER_IMAGE}:${BRANCH}-latest"
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
|
|
if [[ $GITHUB_REF == refs/tags/* ]]; then
|
|
GITTAG="${DOCKER_IMAGE}:$(echo $GITHUB_REF | sed 's|refs/tags/||g')"
|
|
fi
|
|
|
|
if [ -n "${BRANCHTAG}" ] && [ -n "${GITTAG}" ]; then
|
|
TAGS=${BRANCHTAG},${GITTAG}
|
|
else
|
|
TAGS="${BRANCHTAG}${GITTAG}"
|
|
fi
|
|
|
|
echo ::set-output name=tags::${TAGS}
|
|
echo ::set-output name=docker_image::${DOCKER_IMAGE}
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
with:
|
|
platforms: all
|
|
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Login to DockerHub
|
|
if: github.event_name != 'pull_request'
|
|
uses: docker/login-action@v2
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: Label
|
|
id: Label
|
|
run: |
|
|
if [ -f "Dockerfile" ] ; then
|
|
sed -i "/FROM .*/a LABEL tiredofit.image.git_repository=\"https://github.com/${GITHUB_REPOSITORY}\"" Dockerfile
|
|
sed -i "/FROM .*/a LABEL tiredofit.image.git_commit=\"${GITHUB_SHA}\"" Dockerfile
|
|
sed -i "/FROM .*/a LABEL tiredofit.image.git_committed_by=\"${GITHUB_ACTOR}\"" Dockerfile
|
|
sed -i "/FROM .*/a LABEL tiredofit.image.image_build_date=\"$(date +'%Y-%m-%d %H:%M:%S')\"" Dockerfile
|
|
if [ -f "CHANGELOG.md" ] ; then
|
|
sed -i "/FROM .*/a LABEL tiredofit.image.git_changelog_version=\"$(head -n1 ./CHANGELOG.md | awk '{print $2}')\"" Dockerfile
|
|
mkdir -p install/assets/.changelogs ; cp CHANGELOG.md install/assets/.changelogs/${GITHUB_REPOSITORY/\//_}.md
|
|
fi
|
|
|
|
if [[ $GITHUB_REF == refs/tags/* ]]; then
|
|
sed -i "/FROM .*/a LABEL tiredofit.image.git_tag=\"${GITHUB_REF#refs/tags/v}\"" Dockerfile
|
|
fi
|
|
|
|
if [[ $GITHUB_REF == refs/heads/* ]]; then
|
|
sed -i "/FROM .*/a LABEL tiredofit.image.git_branch=\"${GITHUB_REF#refs/heads/}\"" Dockerfile
|
|
fi
|
|
fi
|
|
|
|
- name: Build
|
|
uses: docker/build-push-action@v3
|
|
with:
|
|
builder: ${{ steps.buildx.outputs.name }}
|
|
context: .
|
|
file: ./Dockerfile
|
|
platforms: linux/amd64
|
|
push: true
|
|
tags: ${{ steps.prep.outputs.tags }}
|