mirror of
https://github.com/harvester/harvester-ui-extension.git
synced 2025-12-13 13:11:43 +00:00
206 lines
6.5 KiB
YAML
206 lines
6.5 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
|
|
with:
|
|
path: ${{steps.build-hosted.outputs.BUILD_HOSTED_DIR}}
|
|
destination: releases.rancher.com/harvester-ui/dashboard/${{ steps.build-hosted.outputs.BUILD_HOSTED_LOCATION }}
|
|
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'
|
|
with:
|
|
path: ${{steps.build-embedded.outputs.BUILD_EMBEDED_TGZ}}
|
|
destination: releases.rancher.com/harvester-ui/${{ env.REPO }}
|
|
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
|