forked from ayufan/pve-backup-server-dockerfiles
-
Notifications
You must be signed in to change notification settings - Fork 0
47 lines (47 loc) · 1.87 KB
/
build.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
name: Publish Docker image as release
on:
push: {}
pull_request: {}
jobs:
build:
name: Push Docker image to gchr.io
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set App Version
run: |
echo "PBS_VERSION=$(cat release-version)" >> $GITHUB_ENV
- name: Set Tag Image Name
run: |
export NEED_IMAGE_PUSH=no
export BASE_IMAGE_NAME="ghcr.io/${{ github.repository_owner }}/pve-backup-server"
export IS_LATEST_IMAGE=n
echo "${GITHUB_REF}" | grep "refs/tags" >/dev/null && export NEED_IMAGE_PUSH=true && export IS_LATEST_IMAGE=y && export TAG_IMAGE_NAME="${BASE_IMAGE_NAME}:release-${GITHUB_REF#refs/*/v}" || true
echo "NEED_IMAGE_PUSH=${NEED_IMAGE_PUSH}" >> $GITHUB_ENV
echo "TAG_IMAGE_NAME=${TAG_IMAGE_NAME:-}" >> $GITHUB_ENV
[ "${IS_LATEST_IMAGE}" = "n" ] || echo "LATEST_IMAGE_NAME=${BASE_IMAGE_NAME}:latest" >> $GITHUB_ENV
- name: Set Commit Image Name
if: ${{ env.TAG_IMAGE_NAME == '' && env.GITHUB_REF_NAME == 'publish' }}
run: |
echo "TAG_IMAGE_NAME=${BASE_IMAGE_NAME}:commit-${GITHUB_SHA::8}" >> $GITHUB_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
if: ${{ env.NEED_IMAGE_PUSH == 'true' }}
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}
- name: build and push
uses: docker/build-push-action@v2
with:
context: .
file: Dockerfile
build-args: |
VERSION=${{ env.PBS_VERSION }}
push: ${{ env.NEED_IMAGE_PUSH == 'true' }}
tags: |
${{ env.LATEST_IMAGE_NAME }}
${{ env.TAG_IMAGE_NAME }}