-
Notifications
You must be signed in to change notification settings - Fork 15
101 lines (93 loc) · 3.54 KB
/
publish-recipes.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
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
97
98
99
100
101
# ------------------------------------------------------------
# Copyright 2023 The Radius Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ------------------------------------------------------------
name: Publish Recipes
on:
pull_request:
branches:
- main
push:
branches:
- main
tags:
- v*
concurrency:
group: publish-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
env:
GHCR_ACTOR: rad-ci-bot
RAD_CLI_URL: https://get.radapp.dev/tools/rad/install.sh
GITHUB_TOKEN: ${{ secrets.GH_RAD_CI_BOT_PAT }}
jobs:
publish-dev:
name: Publish Recipes to Dev GHCR
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' && github.event.action != 'closed'
steps:
- name: Check out repo
uses: actions/checkout@v3
- name: Parse release version and set environment variables
run: python ./.github/scripts/get_release_version.py
- name: Download rad CLI
run: |
echo "Downloading edge rad CLI"
wget -q "${{ env.RAD_CLI_URL }}" -O - | /bin/bash -s edge
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ env.GHCR_ACTOR }}
password: ${{ secrets.GH_RAD_CI_BOT_PAT }}
- name: Publish Recipes to Dev GHCR
# Uses REL_VERSION as the recipe version so PR builds result in a `pr-<pr number>` tag
run: ./.github/scripts/publish-recipes.sh radius-project ${{ env.REL_VERSION }}
delete-dev:
name: Delete Dev GHCR Images
runs-on: ubuntu-latest
needs: publish-dev
if: github.event_name == 'pull_request' && github.event.action == 'closed'
steps:
- name: Check out repo
uses: actions/checkout@v3
- name: Parse release version and set environment variables
run: python ./.github/scripts/get_release_version.py
- name: Delete Dev GHCR Images
# Uses REL_VERSION as the recipe version so PR builds result in a `pr-<pr number>` tag
run: ./.github/scripts/delete-recipes.sh radius-project ${{ env.REL_VERSION }}
# This is where we can add integration tests in the future
publish-public:
name: Publish Recipes to Public ACR
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
environment:
name: Public
env:
ACR_HOST: radius.azurecr.io
steps:
- name: Check out repo
uses: actions/checkout@v3
- name: Parse release version and set environment variables
run: python ./.github/scripts/get_release_version.py
- name: Download rad-bicep
run: |
./.github/scripts/curl-with-retries.sh https://get.radapp.dev/tools/bicep-extensibility/edge/linux-x64/rad-bicep --output rad-bicep
chmod +x rad-bicep
./rad-bicep --version
- name: Publish Recipes to Prod ACR
run: |
./.github/scripts/publish-recipes.sh . radius.azurecr.io ${{ env.REL_CHANNEL }}
if [ "${{ env.REL_TAG }}" != "${{ env.REL_CHANNEL }}" ]; then
./.github/scripts/publish-recipes.sh . radius.azurecr.io ${{ env.REL_TAG }}
fi