Skip to content

Update publish with edge (#72) #258

Update publish with edge (#72)

Update publish with edge (#72) #258

# ------------------------------------------------------------
# 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:
push:
branches:
- main
tags:
- v*
concurrency:
group: publish-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
env:
RAD_CLI_URL: https://raw.githubusercontent.com/radius-project/radius/main/deploy/install.sh
jobs:
publish-dev:
name: Publish Recipes to GHCR - Dev
if: github.event_name == 'pull_request' && github.event.action != 'closed'
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
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: Set up ORAS
uses: oras-project/setup-oras@v1
with:
version: '1.2.0'
- name: Verify ORAS installation
run: oras version
- name: Download rad CLI
run: |
echo "Downloading latest 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: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Publish Recipes to 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 dev/recipes ${{ env.REL_VERSION }}
delete-dev:
name: Delete GHCR recipes - Dev
if: github.event_name == 'pull_request' && github.event.action == 'closed'
runs-on: ubuntu-latest
needs: publish-dev
permissions:
contents: read
packages: write
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: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Delete Recipes from GHCR
# 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 dev/recipes ${{ env.REL_VERSION }}
# This is where we can add integration tests in the future
publish-public:
if: github.event_name != 'pull_request'
name: Publish Recipes to GHCR - Public
runs-on: ubuntu-latest
environment:
name: Public
permissions:
contents: read
packages: write
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: Set up ORAS
uses: oras-project/setup-oras@v1
with:
version: '1.2.0'
- name: Verify ORAS installation
run: oras version
- name: Download rad CLI
run: |
echo "Downloading latest 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: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Publish Recipes to GHCR
run: |
./.github/scripts/publish-recipes.sh radius-project recipes ${{ env.REL_CHANNEL }}
if [ "${{ env.REL_TAG }}" != "${{ env.REL_CHANNEL }}" ]; then
./.github/scripts/publish-recipes.sh radius-project recipes ${{ env.REL_TAG }}
fi