|
|
@ -1,43 +1,41 @@ |
|
|
|
name: Automatically Build image on tag |
|
|
|
name: Docker build on tag |
|
|
|
env: |
|
|
|
DOCKER_CLI_EXPERIMENTAL: enabled |
|
|
|
TAG_FMT: '^refs/tags/(((.?[0-9]+){3,4}))$' |
|
|
|
|
|
|
|
on: |
|
|
|
push: |
|
|
|
tags: [ '*' ] |
|
|
|
tags: |
|
|
|
- v[0-9]+.[0-9]+.[0-9]+ |
|
|
|
- v[0-9]+.[0-9]+.[0-9]+-* |
|
|
|
|
|
|
|
jobs: |
|
|
|
build: |
|
|
|
runs-on: ubuntu-18.04 |
|
|
|
name: Build / Push umbrel middleware on version tag |
|
|
|
name: Build and push middleware image |
|
|
|
steps: |
|
|
|
- name: Setup Environment |
|
|
|
run: | |
|
|
|
if ! echo "$GITHUB_REF" | grep -qE "$TAG_FMT"; then |
|
|
|
echo "ERR: TAG must be in format: vX.Y.Z or X.Y.Z or vW.X.Y.Z or W.X.Y.Z" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
VERSION="$(echo "$GITHUB_REF" | sed -E "s|$TAG_FMT|\2|")" |
|
|
|
|
|
|
|
TAG="$(echo "$GITHUB_REF" | sed -E "s|$TAG_FMT|\1|")" |
|
|
|
echo ::set-env name=TAG::"$TAG" |
|
|
|
run: echo ::set-env name=TAG::${GITHUB_REF/refs\/tags\//} |
|
|
|
|
|
|
|
- name: Show set environment variables |
|
|
|
run: | |
|
|
|
printf " TAG: %s\n" "$TAG" |
|
|
|
- name: Login to Docker for building |
|
|
|
|
|
|
|
- name: Login to Docker Hub |
|
|
|
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin |
|
|
|
|
|
|
|
- name: Checkout project |
|
|
|
uses: actions/checkout@v2 |
|
|
|
|
|
|
|
- name: Setup Docker buildx action |
|
|
|
uses: crazy-max/ghaction-docker-buildx@v1 |
|
|
|
id: buildx |
|
|
|
with: |
|
|
|
buildx-version: latest |
|
|
|
qemu-version: latest |
|
|
|
- name: Available platforms |
|
|
|
|
|
|
|
- name: Show available Docker buildx platforms |
|
|
|
run: echo ${{ steps.buildx.outputs.platforms }} |
|
|
|
|
|
|
|
- name: Cache Docker layers |
|
|
|
uses: actions/cache@v2 |
|
|
|
id: cache |
|
|
@ -46,6 +44,7 @@ jobs: |
|
|
|
key: ${{ runner.os }}-buildx-${{ github.sha }} |
|
|
|
restore-keys: | |
|
|
|
${{ runner.os }}-buildx- |
|
|
|
|
|
|
|
- name: Run Docker buildx against tag |
|
|
|
run: | |
|
|
|
docker buildx build \ |
|
|
@ -54,6 +53,7 @@ jobs: |
|
|
|
--platform linux/amd64,linux/arm64,linux/arm/v7 \ |
|
|
|
--tag ${{ secrets.DOCKER_HUB_USER }}/middleware:$TAG \ |
|
|
|
--output "type=registry" ./ |
|
|
|
|
|
|
|
- name: Run Docker buildx against latest |
|
|
|
run: | |
|
|
|
docker buildx build \ |
|
|
|