Akaunting/.github/workflows/docker-hub.yml

100 lines
4.2 KiB
YAML
Raw Normal View History

name: Publish Docker images
2021-01-27 01:54:11 +00:00
on:
schedule:
- cron: '0 10 * * *' # everyday at 10am
push:
branches:
- '**'
pull_request:
jobs:
docker:
2022-11-10 04:06:12 +00:00
runs-on: ubuntu-22.04
strategy:
matrix:
2022-06-22 08:00:51 +00:00
image: ['', v, fpm, fpm-alpine, fpm-alpine-nginx, fpm-alpine-nginx-composer, fpm-alpine-nginx-composer-supervisor]
include:
- image: ''
file: Dockerfile
- image: fpm
file: fpm.Dockerfile
2022-06-22 08:00:51 +00:00
- image: v
file: v.Dockerfile
- image: fpm-alpine
file: fpm-alpine.Dockerfile
- image: fpm-alpine-nginx
file: fpm-alpine-nginx.Dockerfile
- image: fpm-alpine-nginx-composer
file: fpm-alpine-nginx-composer.Dockerfile
2021-06-18 15:29:24 +00:00
- image: fpm-alpine-nginx-composer-supervisor
file: fpm-alpine-nginx-composer-supervisor.Dockerfile
2021-01-27 01:54:11 +00:00
steps:
- name: Checkout
2022-11-10 04:06:12 +00:00
uses: actions/checkout@v3
- name: Define tag name
id: tag-name
2021-01-27 01:56:38 +00:00
run: |
2021-01-27 01:54:11 +00:00
if [ "${GITHUB_REF}" == "refs/heads/master" -a "${GITHUB_EVENT_NAME}" != "pull_request" ]; then
2021-01-27 01:56:38 +00:00
curl -s https://api.github.com/repos/akaunting/akaunting/releases/latest \
| jq -r .tag_name | sed \
-e 's/^/::set-output name=tag::/'
2021-01-27 01:56:38 +00:00
else
echo -n "::set-output name=tag::"
2021-01-27 01:56:38 +00:00
echo "$GITHUB_REF" | cut -d/ -f3- | tr '/' '_'
2021-01-27 01:54:11 +00:00
fi
- name: Define images tags
id: image-tags
run: |
if [ "${GITHUB_REF}" == "refs/heads/master" -a "${GITHUB_EVENT_NAME}" != "pull_request" ]; then
if [ -z ${{ matrix.image }} ]; then
echo ${{ steps.tag-name.outputs.tag }} | sed \
-e 's/\(\(\([0-9]\+\)\.[0-9]\+\)\.[0-9]\+\)/\1,\2,\3,/' \
-e 's/\([^,]\+\),/akaunting\/akaunting:\1,/g' \
-e 's/^/::set-output name=tags::/' \
-e 's/$/akaunting\/akaunting:latest/'
else
echo ${{ steps.tag-name.outputs.tag }} | sed \
-e 's/\(\(\([0-9]\+\)\.[0-9]\+\)\.[0-9]\+\)/\1-${{ matrix.image }},\2-${{ matrix.image }},\3-${{ matrix.image }},/' \
-e 's/\([^,]\+\),/akaunting\/akaunting:\1,/g' \
-e 's/^/::set-output name=tags::/'
fi
else
if [ -z ${{ matrix.image }} ]; then
echo -n "::set-output name=tags::akaunting/akaunting:"
echo "$GITHUB_REF" | cut -d/ -f3- | tr '/' '_'
else
echo -n "::set-output name=tags::akaunting/akaunting:"
echo "$(echo "$GITHUB_REF" | cut -d/ -f3- | tr '/' '_')-${{ matrix.image }}"
fi
fi
2021-04-05 13:57:37 +00:00
- name: Set up QEMU
2022-06-22 08:00:51 +00:00
if: matrix.image == '' || matrix.image == 'v' || matrix.image == 'fpm' || matrix.image == 'fpm-alpine' || matrix.image == 'fpm-alpine-nginx'
2022-11-10 04:06:12 +00:00
uses: docker/setup-qemu-action@v2
2021-04-05 13:57:37 +00:00
- name: Set up Docker Buildx
2022-06-22 08:00:51 +00:00
if: matrix.image == '' || matrix.image == 'v' || matrix.image == 'fpm' || matrix.image == 'fpm-alpine' || matrix.image == 'fpm-alpine-nginx'
2022-11-10 04:06:12 +00:00
uses: docker/setup-buildx-action@v2
2021-01-27 01:54:11 +00:00
- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push images
2022-06-22 08:00:51 +00:00
if: matrix.image == '' || matrix.image == 'v' || matrix.image == 'fpm' || matrix.image == 'fpm-alpine' || matrix.image == 'fpm-alpine-nginx'
2022-11-10 04:06:12 +00:00
uses: docker/build-push-action@v3
2021-01-27 01:54:11 +00:00
with:
context: .
file: ./${{ matrix.file }}
2022-11-10 04:06:12 +00:00
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
2021-01-27 01:54:11 +00:00
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.image-tags.outputs.tags }}
- name: Build and push images
2021-06-18 15:29:24 +00:00
if: matrix.image == 'fpm-alpine-nginx-composer' || matrix.image == 'fpm-alpine-nginx-composer-supervisor'
2022-11-10 04:06:12 +00:00
uses: docker/build-push-action@v3
with:
context: .
file: ./${{ matrix.file }}
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.image-tags.outputs.tags }}