From 4bf69c139e8272df51576c3e740955281c2b473e Mon Sep 17 00:00:00 2001 From: Jorge Morales Pou Date: Fri, 12 Jul 2024 18:14:19 +0200 Subject: [PATCH] Updated action for multiple workshops --- .github/workflows/publish-workshop.yaml | 65 +++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish-workshop.yaml b/.github/workflows/publish-workshop.yaml index 753f07a..f78baaf 100644 --- a/.github/workflows/publish-workshop.yaml +++ b/.github/workflows/publish-workshop.yaml @@ -1,4 +1,4 @@ -name: Publish Workshop +name: Publish Workshops on: push: @@ -7,16 +7,71 @@ on: - "[0-9]+.[0-9]+-alpha.[0-9]+" - "[0-9]+.[0-9]+-beta.[0-9]+" - "[0-9]+.[0-9]+-rc.[0-9]+" + branches: + - main + - develop + workflow_dispatch: jobs: - publish-workshop: + publish-workshops: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - - name: Create release - uses: vmware-tanzu-labs/educates-github-actions/publish-workshop@v6 + - name: Install Carvel tools + shell: bash + run: curl -L https://carvel.dev/install.sh | bash + + - name: Install Educates CLI + shell: bash + run: | + # curl -Lo /usr/local/bin/educates https://github.com/vmware-tanzu-labs/educates-training-platform/releases/download/2.6.0/educates-linux-amd64 + # chmod +x /usr/local/bin/educates + imgpkg pull -i ghcr.io/vmware-tanzu-labs/educates-client-programs:2.6.0 -o /tmp/client-programs + mv /tmp/client-programs/educates-linux-amd64 /usr/local/bin/educates + + - name: Setup repository variables and release details + shell: bash + run: | + REPOSITORY_NAME=${{github.event.repository.name}} + echo "REPOSITORY_NAME=${REPOSITORY_NAME,,}" >>${GITHUB_ENV} + echo "REPOSITORY_OWNER=${GITHUB_REPOSITORY_OWNER,,}" >>${GITHUB_ENV} + echo "REPOSITORY_TAG=${GITHUB_REF##*/}" >>${GITHUB_ENV} + + - name: Publish workshops and create workshop definitions + shell: bash + run: | + for WORKSHOP_DIRECTORY in workshops/*; do + mkdir -p ${{runner.temp}}/${WORKSHOP_DIRECTORY}/resources + educates publish-workshop ${WORKSHOP_DIRECTORY} \ + --export-workshop ${{runner.temp}}/${WORKSHOP_DIRECTORY}/resources/workshop.yaml \ + --image-repository=ghcr.io/${REPOSITORY_OWNER} \ + --workshop-version=${REPOSITORY_TAG} \ + --registry-username=${{github.actor}} \ + --registry-password=${{secrets.GITHUB_TOKEN}} + done + + - name: Generate archives containing the workshop definitions + shell: bash + run: | + ytt -f ${{runner.temp}}/workshops > ${{runner.temp}}/workshops.yaml + (cd ${{runner.temp}}; tar cvfz workshops.tar.gz workshops) + (cd ${{runner.temp}}; zip workshops.zip -r workshops) + + - name: Create the GitHub release for the workshops + id: create_release + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} with: - token: ${{secrets.GITHUB_TOKEN}} + tag_name: ${{env.REPOSITORY_TAG}} + name: ${{env.REPOSITORY_NAME}}:${{env.REPOSITORY_TAG}} + draft: false + prerelease: false + files: | + ${{runner.temp}}/workshops.tar.gz + ${{runner.temp}}/workshops.zip + ${{runner.temp}}/workshops.yaml + resources/trainingportal.yaml \ No newline at end of file