Skip to content

Migrate to GHCR

Migrate to GHCR #179

# ------------------------------------------------------------
# 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:
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: 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