From f1c448234eb6c9364e92324f1ab03c17950e6d10 Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Thu, 16 Mar 2023 15:21:35 +1000 Subject: [PATCH 01/15] updated the release file and renamedit --- .../{release.yml => release-workflow.yaml} | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) rename .github/workflows/{release.yml => release-workflow.yaml} (52%) diff --git a/.github/workflows/release.yml b/.github/workflows/release-workflow.yaml similarity index 52% rename from .github/workflows/release.yml rename to .github/workflows/release-workflow.yaml index 8982046f..9ecfa159 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release-workflow.yaml @@ -1,14 +1,17 @@ -name: Publish library package to npmjs -on: - push: - tags: - - "*" +name: Scalable Pixel Streaming Frontend Release Workflow Pipeline + +# Start our pipeline when we create a new tag on the master branch +on: + release: + types: [published] + jobs: - build: + # Build NPM Package + build-npm: runs-on: ubuntu-latest defaults: run: - working-directory: ./SPS + working-directory: ./library steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 @@ -19,4 +22,4 @@ jobs: - run: npm run build - run: npm publish --access public env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} \ No newline at end of file From 78a1db3e5fcd30ec74bfe34c3ad7f1a08a4065e0 Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Thu, 16 Mar 2023 15:25:22 +1000 Subject: [PATCH 02/15] added tag-workflow.yaml for workflows when tagging --- .github/workflows/tag-workflow.yaml | 82 +++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/tag-workflow.yaml diff --git a/.github/workflows/tag-workflow.yaml b/.github/workflows/tag-workflow.yaml new file mode 100644 index 00000000..79b52c87 --- /dev/null +++ b/.github/workflows/tag-workflow.yaml @@ -0,0 +1,82 @@ +name: Scalable Pixel Streaming Frontend Tag Workflow Pipeline + +# Start our pipeline when we create a new tag on the master branch +on: + push: + tags: + - '*' + +# Assign an environment variable that we can use throughout the workflow for the version +# of SPS that we are tagging +env: + FRONTEND_VERSION: ${{ github.ref_name }} + DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} + DOCKER_TOKEN: ${{ secrets.DOCKER_ACCESS_KEY }} + +jobs: + + # Build AWS + build-aws: + + runs-on: ubuntu-latest + + env: + CLOUD_PROVIDER: aws + + steps: + + - name: Free up some space + run: | + sudo rm -rf /usr/local/lib/android # will release about 10 GB if you don't need Android + sudo rm -rf /usr/share/dotnet # will release about 20GB if you don't need .NET + + # Clone the source code on the runner + - name: Clone repository + uses: actions/checkout@v3 + + # Setup GO + - name: Set up GO + uses: actions/setup-go@v3 + with: + go-version: 1.18 + + # Login to Docker + - name: Docker login + run: docker login -u $DOCKER_USER -p $DOCKER_TOKEN + + # Install zip + - name: Install zip + uses: montudor/action-zip@v1 + + # Build the Docker images that are part of the core framework (non cloud platform specific images) + - name: Build core framework images and push to Docker + run: | + ./.scripts/linux/pipeline/build-images-core.sh --version $FRONTEND_VERSION --provider $CLOUD_PROVIDER + + # Build CoreWeave + build-coreweave: + + runs-on: ubuntu-latest + + env: + CLOUD_PROVIDER: coreweave + + steps: + + # Clone the source code on the runner + - name: Clone repository + uses: actions/checkout@v3 + + # Setup GO + - name: Set up GO + uses: actions/setup-go@v3 + with: + go-version: 1.18 + + # Login to Docker + - name: Docker login + run: docker login -u $DOCKER_USER -p $DOCKER_TOKEN + + # Build the Docker images that are part of the core framework (non cloud platform specific images) + - name: Build core framework images and push to Docker + run: ./.scripts/linux/pipeline/build-images-core.sh --version $FRONTEND_VERSION --provider $CLOUD_PROVIDER \ No newline at end of file From 4ab8ec7bfc0715d5e638d4b04100b3a60e7f6d50 Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Thu, 16 Mar 2023 15:27:26 +1000 Subject: [PATCH 03/15] added build images file that kicks off docker file --- .scripts/linux/pipeline/build-images-core.sh | 35 ++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .scripts/linux/pipeline/build-images-core.sh diff --git a/.scripts/linux/pipeline/build-images-core.sh b/.scripts/linux/pipeline/build-images-core.sh new file mode 100644 index 00000000..76bd9d0e --- /dev/null +++ b/.scripts/linux/pipeline/build-images-core.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +# The version we're building, defaults to dev +VERSION=0.0.0-devel +CLOUD_PROVIDER=local + +# Read the version flag if given +num=0 +for var in "$@" +do + eval flag="\$$num" + + if [[ $flag == "--provider" ]]; then + ((num=num+1)) + eval CLOUD_PROVIDER="\$$num" + fi + + if [[ $flag == "--version" ]]; then + ((num=num+1)) + eval VERSION="\$$num" + fi + + ((num=num+1)) + +done + +# Define our base images +IMG_HTTP_SERVER="tensorworks/sps-http-server" + +# Build all our core containers as background tasks +echo -e '*\n!bin/linux/amd64/*' > .dockerignore +docker build -t "$IMG_HTTP_SERVER:$VERSION-$CLOUD_PROVIDER" -f dockerfiles/http-server.dockerfile . + +# push them containers to docker (3 at a time) +docker push "$IMG_HTTP_SERVER:$VERSION-$CLOUD_PROVIDER" \ No newline at end of file From d2b3ee08876a21a9647aa3d0653d549b6ae7d6de Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Thu, 16 Mar 2023 15:30:54 +1000 Subject: [PATCH 04/15] added dockerfile for http container --- dockerfiles/http-server.dockerfile | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 dockerfiles/http-server.dockerfile diff --git a/dockerfiles/http-server.dockerfile b/dockerfiles/http-server.dockerfile new file mode 100644 index 00000000..0b368308 --- /dev/null +++ b/dockerfiles/http-server.dockerfile @@ -0,0 +1,24 @@ + +FROM timbru31/node-alpine-git:16 as builder + +ARG VERSION=v1.0.0 + +RUN git clone https://github.com/ScalablePixelStreaming/Frontend.git -b $VERSION + +RUN (cd Frontend && cd ./&& npm install && npm run build) + +RUN mkdir www + +RUN cp -a ./Frontend/dist/. www + +FROM nginx:1.21.6 + +RUN mkdir www +WORKDIR /www + +COPY --from=builder www ./ + +RUN rm /etc/nginx/nginx.conf +RUN ln -s /etc/nginx/sps/nginx.conf /etc/nginx/nginx.conf + +EXPOSE 80 \ No newline at end of file From baf55eb39a4c28c92caa835450e746304fb0b23f Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Fri, 17 Mar 2023 09:53:45 +1000 Subject: [PATCH 05/15] removed using go in the tag-workflow --- .github/workflows/tag-workflow.yaml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/tag-workflow.yaml b/.github/workflows/tag-workflow.yaml index 79b52c87..131086e0 100644 --- a/.github/workflows/tag-workflow.yaml +++ b/.github/workflows/tag-workflow.yaml @@ -34,12 +34,6 @@ jobs: - name: Clone repository uses: actions/checkout@v3 - # Setup GO - - name: Set up GO - uses: actions/setup-go@v3 - with: - go-version: 1.18 - # Login to Docker - name: Docker login run: docker login -u $DOCKER_USER -p $DOCKER_TOKEN @@ -67,12 +61,6 @@ jobs: - name: Clone repository uses: actions/checkout@v3 - # Setup GO - - name: Set up GO - uses: actions/setup-go@v3 - with: - go-version: 1.18 - # Login to Docker - name: Docker login run: docker login -u $DOCKER_USER -p $DOCKER_TOKEN From 41b79bbaeee64fa54ecda7c1c0267b22ed6b3b0d Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Fri, 17 Mar 2023 09:59:29 +1000 Subject: [PATCH 06/15] changed some names and comments that did not reflect the intentions of the workflow --- .github/workflows/tag-workflow.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tag-workflow.yaml b/.github/workflows/tag-workflow.yaml index 131086e0..475ecffb 100644 --- a/.github/workflows/tag-workflow.yaml +++ b/.github/workflows/tag-workflow.yaml @@ -42,8 +42,8 @@ jobs: - name: Install zip uses: montudor/action-zip@v1 - # Build the Docker images that are part of the core framework (non cloud platform specific images) - - name: Build core framework images and push to Docker + # Build the Scalable Pixel Streaming Frontend Docker image from the dist directories of the packages + - name: Build the Scalable Pixel Streaming Frontend Docker image for AWS and push to Docker run: | ./.scripts/linux/pipeline/build-images-core.sh --version $FRONTEND_VERSION --provider $CLOUD_PROVIDER @@ -65,6 +65,6 @@ jobs: - name: Docker login run: docker login -u $DOCKER_USER -p $DOCKER_TOKEN - # Build the Docker images that are part of the core framework (non cloud platform specific images) - - name: Build core framework images and push to Docker + # Build the Scalable Pixel Streaming Frontend Docker image from the dist directories of the packages + - name: Build the Scalable Pixel Streaming Frontend Docker image for CoreWeave and push to Docker run: ./.scripts/linux/pipeline/build-images-core.sh --version $FRONTEND_VERSION --provider $CLOUD_PROVIDER \ No newline at end of file From 2732d42672ecbfdd77955b9cd2cdd78b3aad0f6f Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Fri, 17 Mar 2023 11:18:29 +1000 Subject: [PATCH 07/15] removed installing zip from tag-workflow --- .github/workflows/tag-workflow.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/tag-workflow.yaml b/.github/workflows/tag-workflow.yaml index 475ecffb..c59a5ce7 100644 --- a/.github/workflows/tag-workflow.yaml +++ b/.github/workflows/tag-workflow.yaml @@ -38,10 +38,6 @@ jobs: - name: Docker login run: docker login -u $DOCKER_USER -p $DOCKER_TOKEN - # Install zip - - name: Install zip - uses: montudor/action-zip@v1 - # Build the Scalable Pixel Streaming Frontend Docker image from the dist directories of the packages - name: Build the Scalable Pixel Streaming Frontend Docker image for AWS and push to Docker run: | From b763fabe14c56ca1ca8226a48aac98a722fd92f7 Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Mon, 20 Mar 2023 11:37:23 +1000 Subject: [PATCH 08/15] removed cw and aws workflow and just add one workflow --- .github/workflows/tag-workflow.yaml | 38 +++++++++++------------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/.github/workflows/tag-workflow.yaml b/.github/workflows/tag-workflow.yaml index c59a5ce7..9ddee1b6 100644 --- a/.github/workflows/tag-workflow.yaml +++ b/.github/workflows/tag-workflow.yaml @@ -16,7 +16,7 @@ env: jobs: # Build AWS - build-aws: + build-library: runs-on: ubuntu-latest @@ -38,29 +38,19 @@ jobs: - name: Docker login run: docker login -u $DOCKER_USER -p $DOCKER_TOKEN - # Build the Scalable Pixel Streaming Frontend Docker image from the dist directories of the packages - - name: Build the Scalable Pixel Streaming Frontend Docker image for AWS and push to Docker + # Set up Node js for npm + - name: Setup Nodejs + uses: actions/setup-node@v3 + + # Build the SPS Frontend + - name: Build SPS Frontend run: | - ./.scripts/linux/pipeline/build-images-core.sh --version $FRONTEND_VERSION --provider $CLOUD_PROVIDER - - # Build CoreWeave - build-coreweave: - - runs-on: ubuntu-latest - - env: - CLOUD_PROVIDER: coreweave - - steps: - - # Clone the source code on the runner - - name: Clone repository - uses: actions/checkout@v3 - - # Login to Docker - - name: Docker login - run: docker login -u $DOCKER_USER -p $DOCKER_TOKEN + cd /Frontend/examples/typescript + npm install + npm run build-all # Build the Scalable Pixel Streaming Frontend Docker image from the dist directories of the packages - - name: Build the Scalable Pixel Streaming Frontend Docker image for CoreWeave and push to Docker - run: ./.scripts/linux/pipeline/build-images-core.sh --version $FRONTEND_VERSION --provider $CLOUD_PROVIDER \ No newline at end of file + - name: Build the Scalable Pixel Streaming Frontend Docker image for AWS and push to Docker + run: | + docker build -t "tensorworks/sps-frontend:$VERSION-$CLOUD_PROVIDER" -f ./dockerfiles/sps-frontend.dockerfile . + docker push "tensorworks/sps-frontend:$VERSION-$CLOUD_PROVIDER" \ No newline at end of file From 292590ae58b4411a1cda0eb44ac535b601b16815 Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Mon, 20 Mar 2023 11:38:31 +1000 Subject: [PATCH 09/15] renamed docker file --- dockerfiles/http-server.dockerfile | 24 ------------------------ dockerfiles/sps-frontend.dockerfile | 12 ++++++++++++ 2 files changed, 12 insertions(+), 24 deletions(-) delete mode 100644 dockerfiles/http-server.dockerfile create mode 100644 dockerfiles/sps-frontend.dockerfile diff --git a/dockerfiles/http-server.dockerfile b/dockerfiles/http-server.dockerfile deleted file mode 100644 index 0b368308..00000000 --- a/dockerfiles/http-server.dockerfile +++ /dev/null @@ -1,24 +0,0 @@ - -FROM timbru31/node-alpine-git:16 as builder - -ARG VERSION=v1.0.0 - -RUN git clone https://github.com/ScalablePixelStreaming/Frontend.git -b $VERSION - -RUN (cd Frontend && cd ./&& npm install && npm run build) - -RUN mkdir www - -RUN cp -a ./Frontend/dist/. www - -FROM nginx:1.21.6 - -RUN mkdir www -WORKDIR /www - -COPY --from=builder www ./ - -RUN rm /etc/nginx/nginx.conf -RUN ln -s /etc/nginx/sps/nginx.conf /etc/nginx/nginx.conf - -EXPOSE 80 \ No newline at end of file diff --git a/dockerfiles/sps-frontend.dockerfile b/dockerfiles/sps-frontend.dockerfile new file mode 100644 index 00000000..bbe16a2c --- /dev/null +++ b/dockerfiles/sps-frontend.dockerfile @@ -0,0 +1,12 @@ + +FROM nginx:1.21.6 + +RUN mkdir www +WORKDIR /www + +ADD /Frontend/examples/typescript/. /www/ + +RUN rm /etc/nginx/nginx.conf +RUN ln -s /etc/nginx/sps/nginx.conf /etc/nginx/nginx.conf + +EXPOSE 80 \ No newline at end of file From a459a4f9b06524ad3946029a2efb77ce1722352a Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Mon, 20 Mar 2023 11:39:09 +1000 Subject: [PATCH 10/15] corrected comment from aws to library --- .github/workflows/tag-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tag-workflow.yaml b/.github/workflows/tag-workflow.yaml index 9ddee1b6..2ddef524 100644 --- a/.github/workflows/tag-workflow.yaml +++ b/.github/workflows/tag-workflow.yaml @@ -15,7 +15,7 @@ env: jobs: - # Build AWS + # Build Library build-library: runs-on: ubuntu-latest From 66f9548bf0c1b4a86158a25efd4048c363112d4f Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Mon, 20 Mar 2023 11:57:35 +1000 Subject: [PATCH 11/15] removed aws specific comment --- .github/workflows/tag-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tag-workflow.yaml b/.github/workflows/tag-workflow.yaml index 2ddef524..34541ead 100644 --- a/.github/workflows/tag-workflow.yaml +++ b/.github/workflows/tag-workflow.yaml @@ -50,7 +50,7 @@ jobs: npm run build-all # Build the Scalable Pixel Streaming Frontend Docker image from the dist directories of the packages - - name: Build the Scalable Pixel Streaming Frontend Docker image for AWS and push to Docker + - name: Build the Scalable Pixel Streaming Frontend Docker image and push to Docker run: | docker build -t "tensorworks/sps-frontend:$VERSION-$CLOUD_PROVIDER" -f ./dockerfiles/sps-frontend.dockerfile . docker push "tensorworks/sps-frontend:$VERSION-$CLOUD_PROVIDER" \ No newline at end of file From f255212eb34b20b4e8c6bbac984b8f8b5ab0160a Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Mon, 20 Mar 2023 11:58:29 +1000 Subject: [PATCH 12/15] removed unneeded build images script --- .scripts/linux/pipeline/build-images-core.sh | 35 -------------------- 1 file changed, 35 deletions(-) delete mode 100644 .scripts/linux/pipeline/build-images-core.sh diff --git a/.scripts/linux/pipeline/build-images-core.sh b/.scripts/linux/pipeline/build-images-core.sh deleted file mode 100644 index 76bd9d0e..00000000 --- a/.scripts/linux/pipeline/build-images-core.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash - -# The version we're building, defaults to dev -VERSION=0.0.0-devel -CLOUD_PROVIDER=local - -# Read the version flag if given -num=0 -for var in "$@" -do - eval flag="\$$num" - - if [[ $flag == "--provider" ]]; then - ((num=num+1)) - eval CLOUD_PROVIDER="\$$num" - fi - - if [[ $flag == "--version" ]]; then - ((num=num+1)) - eval VERSION="\$$num" - fi - - ((num=num+1)) - -done - -# Define our base images -IMG_HTTP_SERVER="tensorworks/sps-http-server" - -# Build all our core containers as background tasks -echo -e '*\n!bin/linux/amd64/*' > .dockerignore -docker build -t "$IMG_HTTP_SERVER:$VERSION-$CLOUD_PROVIDER" -f dockerfiles/http-server.dockerfile . - -# push them containers to docker (3 at a time) -docker push "$IMG_HTTP_SERVER:$VERSION-$CLOUD_PROVIDER" \ No newline at end of file From 0134cca7346a071556f8285cbbc2896583feaba4 Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Tue, 21 Mar 2023 12:23:19 +1000 Subject: [PATCH 13/15] updated tag workflow with changes from testing --- .github/workflows/tag-workflow.yaml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tag-workflow.yaml b/.github/workflows/tag-workflow.yaml index 34541ead..a11b4c1d 100644 --- a/.github/workflows/tag-workflow.yaml +++ b/.github/workflows/tag-workflow.yaml @@ -9,7 +9,7 @@ on: # Assign an environment variable that we can use throughout the workflow for the version # of SPS that we are tagging env: - FRONTEND_VERSION: ${{ github.ref_name }} + VERSION: ${{ github.ref_name }} DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} DOCKER_TOKEN: ${{ secrets.DOCKER_ACCESS_KEY }} @@ -20,9 +20,6 @@ jobs: runs-on: ubuntu-latest - env: - CLOUD_PROVIDER: aws - steps: - name: Free up some space @@ -45,12 +42,11 @@ jobs: # Build the SPS Frontend - name: Build SPS Frontend run: | - cd /Frontend/examples/typescript npm install npm run build-all # Build the Scalable Pixel Streaming Frontend Docker image from the dist directories of the packages - name: Build the Scalable Pixel Streaming Frontend Docker image and push to Docker run: | - docker build -t "tensorworks/sps-frontend:$VERSION-$CLOUD_PROVIDER" -f ./dockerfiles/sps-frontend.dockerfile . - docker push "tensorworks/sps-frontend:$VERSION-$CLOUD_PROVIDER" \ No newline at end of file + docker build -t "tensorworks/sps-frontend:$VERSION" -f ./dockerfiles/sps-frontend.dockerfile . + docker push "tensorworks/sps-frontend:$VERSION" \ No newline at end of file From 464f644b245d0fb979821901c6096b494af6c9fc Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Wed, 22 Mar 2023 10:39:48 +1000 Subject: [PATCH 14/15] added the refinements from workflow testing and fixed comments --- .github/workflows/tag-workflow.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tag-workflow.yaml b/.github/workflows/tag-workflow.yaml index a11b4c1d..d2b5a9c7 100644 --- a/.github/workflows/tag-workflow.yaml +++ b/.github/workflows/tag-workflow.yaml @@ -6,8 +6,7 @@ on: tags: - '*' -# Assign an environment variable that we can use throughout the workflow for the version -# of SPS that we are tagging +# Assign an environment variable that we can use for the version of the Scalable Pixel Streaming Frontend that we are tagging env: VERSION: ${{ github.ref_name }} DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} @@ -21,13 +20,14 @@ jobs: runs-on: ubuntu-latest steps: - + + # remove unneeded pieces from runner to free up space - name: Free up some space run: | sudo rm -rf /usr/local/lib/android # will release about 10 GB if you don't need Android sudo rm -rf /usr/share/dotnet # will release about 20GB if you don't need .NET - # Clone the source code on the runner + # Clone the source code on the runner - name: Clone repository uses: actions/checkout@v3 @@ -39,10 +39,10 @@ jobs: - name: Setup Nodejs uses: actions/setup-node@v3 - # Build the SPS Frontend + # Build the Scalable Pixel Streaming Frontend Library and Example - name: Build SPS Frontend run: | - npm install + cd ./examples/typescript npm run build-all # Build the Scalable Pixel Streaming Frontend Docker image from the dist directories of the packages From 4639b436548d7e2d396564027d16d4d75e284482 Mon Sep 17 00:00:00 2001 From: Adrian Zahra Date: Wed, 22 Mar 2023 10:42:47 +1000 Subject: [PATCH 15/15] updated sps-frontend dockerfile with the correct add path --- dockerfiles/sps-frontend.dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dockerfiles/sps-frontend.dockerfile b/dockerfiles/sps-frontend.dockerfile index bbe16a2c..9284d1a6 100644 --- a/dockerfiles/sps-frontend.dockerfile +++ b/dockerfiles/sps-frontend.dockerfile @@ -1,10 +1,9 @@ - FROM nginx:1.21.6 RUN mkdir www WORKDIR /www -ADD /Frontend/examples/typescript/. /www/ +ADD examples/typescript/dist/. /www/ RUN rm /etc/nginx/nginx.conf RUN ln -s /etc/nginx/sps/nginx.conf /etc/nginx/nginx.conf