Publish Snapshot EKS Operator #97
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish EKS Operator | |
run-name: ${{ format('Publish {0} EKS Operator', inputs.release_type) }} | |
on: | |
workflow_dispatch: | |
inputs: | |
release_type: | |
type: choice | |
description: The type of release | |
default: Snapshot | |
options: | |
- Snapshot | |
- Patch | |
- Minor | |
- Major | |
version_number_input: | |
description: If set, the version number will not be incremented and the given number will be used. | |
type: string | |
default: '' | |
workflow_call: | |
inputs: | |
release_type: | |
description: The type of version number to return. Must be one of [Snapshot, Patch, Minor or Major] | |
required: true | |
type: string | |
version_number_input: | |
description: If set, the version number will not be incremented and the given number will be used. | |
type: string | |
default: '' | |
env: | |
REGISTRY: ghcr.io | |
ENCLAVE_PROTOCOL: aws-nitro | |
ARTIFACTS_BASE_OUTPUT_DIR: ${{ github.workspace }}/deployment-artifacts | |
IMAGE_NAME: ${{ github.repository }} | |
jobs: | |
start: | |
name: Update Operator Version | |
runs-on: ubuntu-latest | |
steps: | |
- name: Update Operator Version | |
id: update_version | |
uses: IABTechLab/uid2-operator/.github/actions/update_operator_version@main | |
with: | |
release_type: ${{ inputs.release_type }} | |
version_number_input: ${{ inputs.version_number_input }} | |
image_tag_suffix: eks-nitro | |
outputs: | |
new_version: ${{ steps.update_version.outputs.new_version }} | |
is_release: ${{ steps.update_version.outputs.is_release }} | |
image_tag: ${{ steps.update_version.outputs.image_tag }} | |
buildUID2EIF: | |
name: Build UID2 EIF and Pod for EKS | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
security-events: write | |
packages: write | |
needs: start | |
steps: | |
- name: Build Docker Image for EKS Pod | |
id: build_docker_image | |
uses: IABTechLab/uid2-operator/.github/actions/build_eks_docker_image@main | |
with: | |
identity_scope: uid2 | |
artifacts_output_dir: ${{ env.ARTIFACTS_BASE_OUTPUT_DIR }}/uid2 | |
version_number_input: ${{ inputs.version_number_input }} | |
image_tag: ${{ needs.start.outputs.image_tag }} | |
new_version: ${{ needs.start.outputs.new_version }} | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
outputs: | |
enclave_id: ${{ steps.build_docker_image.outputs.enclave_id }} | |
buildEUIDEIF: | |
name: Build EUID EIF and Pod for EKS | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
security-events: write | |
packages: write | |
needs: start | |
steps: | |
- name: Build Docker Image for EKS Pod | |
id: build_docker_image | |
uses: IABTechLab/uid2-operator/.github/actions/build_eks_docker_image@main | |
with: | |
identity_scope: euid | |
artifacts_output_dir: ${{ env.ARTIFACTS_BASE_OUTPUT_DIR }}/euid | |
version_number_input: ${{ inputs.version_number_input }} | |
image_tag: ${{ needs.start.outputs.image_tag }} | |
new_version: ${{ needs.start.outputs.new_version }} | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
outputs: | |
enclave_id: ${{ steps.build_docker_image.outputs.enclave_id }} | |
cleanup: | |
name: Cleanup Building AWS Image | |
runs-on: ubuntu-latest | |
needs: [start, buildUID2EIF, buildEUIDEIF] | |
steps: | |
- name: Check disk usage | |
shell: bash | |
run: | | |
df -h | |
- name: Save Enclave Ids | |
run: | | |
mkdir -p ${{ env.ARTIFACTS_BASE_OUTPUT_DIR }}/manifests | |
echo ${{ needs.buildUID2EIF.outputs.enclave_id }} >> ${{ env.ARTIFACTS_BASE_OUTPUT_DIR }}/manifests/aws-eks-uid2-enclave-id-${{ needs.start.outputs.new_version }}.txt | |
echo ${{ needs.buildEUIDEIF.outputs.enclave_id }} >> ${{ env.ARTIFACTS_BASE_OUTPUT_DIR }}/manifests/aws-eks-euid-enclave-id-${{ needs.start.outputs.new_version }}.txt | |
- name: Save Manifests as build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aws-eks-enclave-ids-${{ needs.start.outputs.new_version }} | |
path: ${{ env.ARTIFACTS_BASE_OUTPUT_DIR }}/manifests | |
if-no-files-found: error | |
- name: Build changelog | |
id: github_release | |
if: ${{ inputs.version_number_input == '' && needs.start.outputs.is_release == 'true' }} | |
uses: mikepenz/release-changelog-builder-action@v4 | |
with: | |
configurationJson: | | |
{ | |
"template": "#{{CHANGELOG}}\n## Installation\n```\See [AWS Marketplace](https://unifiedid.com/docs/guides/operator-guide-aws-marketplace) for details\n```\n\n## Changelog\n#{{UNCATEGORIZED}}", | |
"pr_template": " - #{{TITLE}} - ( PR: ##{{NUMBER}} )" | |
} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create release | |
if: ${{ inputs.version_number_input == '' && needs.start.outputs.is_release == 'true' }} | |
uses: softprops/action-gh-release@v2 | |
with: | |
name: ${{ needs.start.outputs.new_version }} | |
body: ${{ steps.github_release.outputs.changelog }} | |
draft: true | |
files: | | |
${{ env.ARTIFACTS_BASE_OUTPUT_DIR }}/manifests/aws-eks-uid2-enclave-id-${{ needs.start.outputs.new_version }}.txt | |
${{ env.ARTIFACTS_BASE_OUTPUT_DIR }}/manifests/aws-eks-euid-enclave-id-${{ needs.start.outputs.new_version }}.txt |