This repository has been archived by the owner on Nov 20, 2024. It is now read-only.
make all platforms optional by default #8
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: Release | ||
on: | ||
workflow_dispatch: | ||
inputs: | ||
tag: | ||
description: "Tag to be released (e.g., v1.0.0)" | ||
required: true | ||
all_platforms: | ||
description: "Build for all platforms (linux/amd64,linux/arm64) or just linux/amd64" | ||
required: false | ||
type: boolean | ||
default: false | ||
jobs: | ||
# Job 1: Build and Push Docker Image (Independent job) | ||
prod-container-build: | ||
permissions: | ||
contents: read | ||
packages: write | ||
uses: scality/workflows/.github/workflows/docker-build.yaml@v2 | ||
with: | ||
context: . | ||
name: cosi | ||
namespace: ${{ github.repository_owner }} | ||
tag: ${{ inputs.tag }} | ||
platforms: ${{ inputs.all_platforms && 'linux/amd64,linux/arm64' || 'linux/amd64' }} | ||
# Job 2: Package Helm Chart (Runs independently of Docker build) | ||
package-helm-chart: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v4 | ||
- name: Set up Helm | ||
uses: azure/setup-helm@v1 | ||
with: | ||
version: v3.7.1 | ||
- name: Package Helm Chart | ||
run: | | ||
helm package ./helm/scality-cosi-driver --version ${{ inputs.tag }} --app-version ${{ inputs.tag }} | ||
- name: Upload Helm Chart as Artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: helm-chart | ||
path: scality-cosi-driver-${{ inputs.tag }}.tgz | ||
# Job 3: Create Docker Image Info File (Depends on Docker build) | ||
create-docker-info: | ||
runs-on: ubuntu-latest | ||
needs: prod-container-build | ||
steps: | ||
- name: Create Docker Image Info File | ||
run: echo "Docker image - ghcr.io/${{ github.repository_owner }}/cosi:${{ inputs.tag }} built with platforms: ${{ inputs.all_platforms && 'linux/amd64,linux/arm64' || 'linux/amd64' }}" > docker-image-info.txt | ||
- name: Upload Docker Info as Artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: docker-image-info | ||
path: docker-image-info.txt | ||
# Job 4: Create GitHub Release (Depends on Docker info and Helm chart packaging) | ||
create-github-release: | ||
runs-on: ubuntu-latest | ||
needs: [create-docker-info, package-helm-chart] | ||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v4 | ||
- name: Download Helm Chart Artifact | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: helm-chart | ||
- name: Download Docker Info Artifact | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docker-image-info | ||
- name: Upload Assets and Create GitHub Release | ||
uses: softprops/action-gh-release@v2 | ||
with: | ||
files: | | ||
docker-image-info.txt | ||
scality-cosi-driver-${{ inputs.tag }}.tgz | ||
tag_name: ${{ inputs.tag }} | ||
name: Release ${{ inputs.tag }} | ||
body: "Release for tag ${{ inputs.tag }}" | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |