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