harvester-ui-extension/.github/workflows/build-and-upload.yaml
andy.lee d6bf6f1b55
use mock folder name to test main branch release
Signed-off-by: andy.lee <andy.lee@suse.com>
2025-01-06 11:07:53 +08:00

208 lines
6.7 KiB
YAML

name: Build Harvester Dashboard and Upload
on:
workflow_call:
inputs:
CI_BRANCH:
required: false
type: string
CI_BUILD_TAG:
required: false
type: string
env:
GOOGLE_AUTH: ''
DOCKER_USERNAME: ''
DOCKER_PASSWORD: ''
CI_BUILD_TAG: ${{inputs.CI_BUILD_TAG}}
CI_BRANCH: ${{inputs.CI_BRANCH}}
GIT_REPO: ${{github.repository}}
GIT_COMMIT: ${{github.sha}}
REPO: ${{github.event.repository.name || ''}}
jobs:
# build-and-upload-docker-image:
# name: Build & Upload Docker
# runs-on: ubuntu-latest
# permissions:
# contents: read
# packages: write
# id-token: write
# steps:
# - uses: actions/checkout@v4
# with:
# fetch-depth: 1
# - id: upload-gate
# name: Upload Gate
# run: ./scripts/build-upload-gate
# - id: read-docker-secrets
# name: Read Docker Secrets
# uses: rancher-eio/read-vault-secrets@main
# with:
# secrets: |
# secret/data/github/repo/${{ github.repository }}/dockerhub/harvester/credentials username | DOCKER_USERNAME ;
# secret/data/github/repo/${{ github.repository }}/dockerhub/harvester/credentials password | DOCKER_PASSWORD ;
# - id: login-docker
# name: Docker Log in
# uses: docker/login-action@v3
# with:
# username: ${{ env.DOCKER_USERNAME }}
# password: ${{ env.DOCKER_PASSWORD }}
# - id: push-docker
# name: Docker Build
# uses: docker/build-push-action@v5
# with:
# provenance: false
# context: .
# push: true
# tags: rancher/harvester-ui:${{ github.ref_name }}
build-and-upload-hosted:
name: Build & Upload Hosted
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
# Note - Cannot use the setup action here as it uses a different yarn install arg
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
# Build a directory containing the dashboard that can be used with ui-dashboard-index
- id: build-hosted
name: Build Hosted
run: ./scripts/build-hosted
- id: upload-gate
name: Upload Gate (superseded by a newer build?)
run: ./scripts/build-upload-gate
- name: Get gcs auth
uses: rancher-eio/read-vault-secrets@main
with:
secrets: |
secret/data/github/repo/${{ github.repository }}/googleauthkey/harvester/credentials credential | GOOGLE_AUTH ;
- name: Apply gcs auth
# https://github.com/google-github-actions/auth
uses: 'google-github-actions/auth@v2'
with:
credentials_json: "${{ env.GOOGLE_AUTH }}"
- name: Upload build
uses: 'google-github-actions/upload-cloud-storage@v2'
# https://github.com/google-github-actions/upload-cloud-storage
# TODO: replace test-release back to ${{ steps.build-hosted.outputs.BUILD_HOSTED_LOCATION }}
with:
path: ${{steps.build-hosted.outputs.BUILD_HOSTED_DIR}}
destination: releases.rancher.com/harvester-ui/dashboard/test-release
parent: false
headers: |-
cache-control: no-cache,must-revalidate
process_gcloudignore: false
build-and-upload-embedded:
name: Build & Upload Embedded
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
# Note - Cannot use the setup action here as it uses a different yarn install arg
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
# Build a tar that will be picked up by rancher builds and embedded into it
- id: build-embedded
name: Build Embedded
run: ./scripts/build-embedded
env:
DISABLED_EMBED_PKG: https://releases.rancher.com/harvester-ui/plugin/harvester-1.0.3.tar.gz
- name: Get gcs auth
uses: rancher-eio/read-vault-secrets@main
with:
secrets: |
secret/data/github/repo/${{ github.repository }}/googleauthkey/harvester/credentials credential | GOOGLE_AUTH ;
- name: Apply gcs auth
# https://github.com/google-github-actions/auth
uses: 'google-github-actions/auth@v2'
with:
credentials_json: "${{ env.GOOGLE_AUTH }}"
- name: Upload tar
uses: 'google-github-actions/upload-cloud-storage@v2'
# TODO: replace test-release with ${{ env.REPO }}
with:
path: ${{steps.build-embedded.outputs.BUILD_EMBEDED_TGZ}}
destination: releases.rancher.com/harvester-ui/test-release
parent: false
headers: |-
cache-control: no-cache,must-revalidate
process_gcloudignore: false
# build-and-upload-harvester-plugin:
# name: Build & Upload Plugin
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# with:
# fetch-depth: 1
# # Note - Cannot use the setup action here as it uses a different yarn install arg
# - uses: actions/setup-node@v4
# with:
# node-version-file: '.nvmrc'
# cache: 'yarn'
# - id: ci-build-pkg
# name: Build pkg
# run: ./shell/scripts/ci-build-pkg.sh harvester
# - id: upload-gate
# name: Upload Gate
# run: ./scripts/build-upload-gate
# - name: Get gcs auth
# uses: rancher-eio/read-vault-secrets@main
# with:
# secrets: |
# secret/data/github/repo/${{ github.repository }}/googleauthkey/harvester/credentials credential | GOOGLE_AUTH ;
# - name: Apply gcs auth
# # https://github.com/google-github-actions/auth
# uses: 'google-github-actions/auth@v2'
# with:
# credentials_json: "${{ env.GOOGLE_AUTH }}"
# - name: Upload plugin tar
# uses: 'google-github-actions/upload-cloud-storage@v2'
# with:
# path: dist-pkg/${{steps.ci-build-pkg.outputs.PKG_TARBALL}}
# destination: releases.rancher.com/harvester-ui/plugin
# parent: false
# headers: |-
# cache-control: no-cache,must-revalidate
# process_gcloudignore: false
# - name: Upload plugin directory
# uses: 'google-github-actions/upload-cloud-storage@v2'
# with:
# path: dist-pkg/${{steps.ci-build-pkg.outputs.PKG_NAME}}
# destination: releases.rancher.com/harvester-ui/plugin/${{steps.ci-build-pkg.outputs.PKG_NAME}}
# parent: false
# headers: |-
# cache-control: no-cache,must-revalidate
# process_gcloudignore: false