Skip to content

Update build workflow bicep #64

Update build workflow bicep

Update build workflow bicep #64

# ------------------------------------------------------------
# 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: Update extensibility provider types
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
path:
- "artifacts/bicep/**"
workflow_dispatch:
inputs: {}
env:
# bicep-types ACR url for uploading AWS Bicep types
BICEP_TYPES_REGISTRY: 'biceptypes.azurecr.io'
AWS_REGION: us-west-2
jobs:
build-and-push-bicep-types:
name: Publish Radius bicep types to ACR
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Parse release version and set environment variables
run: python ./.github/scripts/get_release_version.py
- name: Set up Go ${{ env.GOVER }}
uses: actions/setup-go@v5
with:
go-version: ${{ env.GOVER }}
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '18'
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}
- name: 'Build aws-type-downloader'
env:
GOPROXY: "https://proxy.golang.org"
working-directory: 'src/aws-type-downloader'
run: go build .
- name: Download AWS specs from CloudControl
run: |
cd src/aws-type-downloader && go run main.go --output ../../artifacts/types --clean
- name: 'Initialize submodule'
run: |
git submodule update --init --recursive
npm --prefix bicep-types/src/bicep-types ci && npm --prefix bicep-types/src/bicep-types run build; \
- name: Generate Bicep extensibility types for AWS
run: |
npm --prefix ./src/aws-type-generator install
npm run --prefix ./src/aws-type-generator start -- --input ../../artifacts/types --output ../../artifacts/bicep --release-version ${{ env.REL_VERSION == 'edge' && 'latest' || env.REL_VERSION }}
- name: Upload AWS Bicep types artifacts
uses: actions/upload-artifact@v4
with:
name: aws-bicep-types
path: ./artifacts/bicep
if-no-files-found: error
- name: 'Login via Azure CLI'
if: github.repository == 'radius-project/bicep-types-aws' && ((startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main'))
uses: azure/login@v1
with:
creds: ${{ secrets.BICEP_TYPES_AZURE_CREDENTIALS }}
- name: Setup and verify bicep CLI
if: github.repository == 'radius-project/bicep-types-aws' && ((startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main'))
run: |
curl -Lo bicep https://github.com/Azure/bicep/releases/latest/download/bicep-linux-x64
chmod +x ./bicep
bicep --version
- name: Publish bicep types
if: github.repository == 'radius-project/bicep-types-aws' && ((startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main'))
run: |
bicep publish-provider ./artifacts/bicep/index.json --target br:${{ env.BICEP_TYPES_REGISTRY }}/aws:${{ env.REL_VERSION == 'edge' && 'latest' || env.REL_VERSION }} --force
update-types:
name: Update Bicep extensibility provider types
runs-on: ubuntu-latest
timeout-minutes: 10
env:
GOVER: '^1.18'
GOPROXY: https://proxy.golang.org
steps:
- uses: actions/checkout@v3
- id: get_commit_hash
name: Get commit hash (radius-project/bicep-types-aws)
run: |
echo "commit_hash_short=$(git rev-parse HEAD --short)" >> $GITHUB_OUTPUT
echo "gh_uri=https://github.com/radius-project/bicep-types-aws/tree/$(git rev-parse HEAD)/artifacts/bicep" >> $GITHUB_OUTPUT
- name: Clone https://github.com/radius-project/bicep
uses: actions/checkout@v3
with:
token: ${{ secrets.GH_RAD_CI_BOT_PAT }}
repository: radius-project/bicep
path: workflow-temp/bicep
ref: bicep-extensibility
- name: Copy generated files to radius-project/bicep repo
run: |
mkdir -p workflow-temp/bicep/src/Bicep.Types.Aws/generated
cp -R artifacts/bicep/* workflow-temp/bicep/src/Bicep.Types.Aws/generated
- name: Create Pull Request in radius-project/bicep repo
uses: peter-evans/create-pull-request@v4
with:
path: workflow-temp/bicep
token: ${{ secrets.GH_RAD_CI_BOT_PAT }}
committer: rad-ci-bot <[email protected]>
author: rad-ci-bot <[email protected]>
signoff: true
branch: aws-types/patch-${{ github.event.pull_request.number }}
delete-branch: true
title: |
Update AWS extensibility provider for Bicep
body: |
## Autogenerated Report
- Updates Bicep extensibility type definitions generated from [radius-project/bicep-types-aws](${{ steps.get_commit_hash.outputs.gh_uri }})
commit-message: |
update generated types from ${{ steps.get_commit_hash.outputs.gh_uri }}
labels: |
autogenerated
github_actions
aws-types
draft: false