Browse Source

Semantic versioning for docker builds

master
Mayank 4 years ago
parent
commit
68b220c907
No known key found for this signature in database GPG Key ID: D037D60476CE748C
  1. 22
      .github/ISSUE_TEMPLATE/feature_request.md
  2. 11
      .github/workflows/on-push.yml
  3. 32
      .github/workflows/on-tag.yml

22
.github/ISSUE_TEMPLATE/feature_request.md

@ -1,22 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Issue**
A clear and concise description of what the problem is.
**Proposed Solution**
A clear and concise description of what you want to happen.
**Dependencies**
1. Links to PRs
2. Links to Issues
3. Description of other dependencies
**Additional context**
Add any other context or screenshots about the feature request here.

11
.github/workflows/on-push.yml

@ -11,21 +11,27 @@ jobs:
steps:
- name: Set env variables
run: echo "::set-env name=BRANCH::$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')"
- name: Show set env variables
run: |
printf " BRANCH: %s\n" "$BRANCH"
printf " BRANCH: %s\n" "$BRANCH"
- 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: Show available buildx platforms
- name: Show available Docker buildx platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Cache Docker layers
uses: actions/cache@v2
id: cache
@ -34,6 +40,7 @@ jobs:
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Run Docker buildx
run: |
docker buildx build \

32
.github/workflows/on-tag.yml

@ -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
printf " TAG: %s\n" "$TAG"
- 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 \

Loading…
Cancel
Save