-
Notifications
You must be signed in to change notification settings - Fork 5
96 lines (72 loc) · 2.69 KB
/
prerelease.yml
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
name: Pre-Release
on:
pull_request:
types:
- opened
- synchronize
- reopened
- labeled
- unlabeled
env:
IMAGE_NAME: i4trust/pdc-portal
IMAGE_NAME_QUAY: quay.io/i4trust/pdc-portal
GITHUB_PR_NUMBER: ${{github.event.pull_request.number}}
jobs:
generate-version:
name: Generate version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.out.outputs.version }}
plain-version: ${{ steps.out.outputs.plain-version }}
steps:
- uses: actions/checkout@v2
- id: bump
uses: zwaldowski/match-label-action@v1
with:
allowed: major,minor,patch
- uses: zwaldowski/semver-release-action@v2
with:
dry_run: true
bump: ${{ steps.bump.outputs.match }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Get PR Number
id: pr_number
run: echo "::set-output name=nr::$GITHUB_PR_NUMBER"
- name: Set version output
id: out
run: |
echo "::set-output name=version::$(echo ${VERSION}-PRE-${{ steps.pr_number.outputs.nr }})"
echo "::set-output name=plain-version::$(echo ${VERSION})"
git-release:
name: Git release
needs: ["generate-version"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: ${{ needs.generate-version.outputs.version }}
prerelease: true
title: ${{ needs.generate-version.outputs.version }}
docker-release:
name: Docker build and release
needs: ["git-release", "generate-version"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Log into registry
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push
run: |
docker build --tag ${{ env.IMAGE_NAME }}:${{ needs.generate-version.outputs.version }} .
docker push ${{ env.IMAGE_NAME }}:${{ needs.generate-version.outputs.version }}
- name: Push to quay.io
run: |
echo "${{ secrets.QUAY_TOKEN }}" | docker login quay.io -u "${{ secrets.QUAY_USERNAME }}" --password-stdin
docker tag ${{ env.IMAGE_NAME }}:${{ needs.generate-version.outputs.version }} ${{ env.IMAGE_NAME_QUAY }}:${{ needs.generate-version.outputs.version }}
docker push ${{ env.IMAGE_NAME_QUAY }}:${{ needs.generate-version.outputs.version }}