Skip to content

Commit

Permalink
Image size experiment
Browse files Browse the repository at this point in the history
  • Loading branch information
ypwong99 committed Jan 15, 2024
1 parent 15edc88 commit 744977d
Show file tree
Hide file tree
Showing 20 changed files with 856 additions and 0 deletions.
389 changes: 389 additions & 0 deletions .github/workflows/image-size-experiment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,389 @@
name: Image size experiment

on:
workflow_dispatch:
push:
branches:
- ypwong99/temp-experiment-image-sizes

jobs:
build_client:
name: Build framework
runs-on: ubuntu-latest
env:
working-directory: ./src
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
ref: ypwong99/temp-experiment-image-sizes

- name: Set up Go 1.21
uses: actions/setup-go@v3
with:
go-version: 1.21

- name: Build client binary
working-directory: ${{ env.working-directory }}
run: env GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o stellar main.go

- name: Package client artifact
working-directory: ${{ env.working-directory }}
run: tar -czvf build.tar ./stellar

- name: Upload client artifact
uses: actions/upload-artifact@v3
with:
name: STeLLAR-build
path: ${{ env.working-directory }}/build.tar
retention-days: 1

# cold-image-size-50-gcr:
# name: GCR 50MB image size experiment
# needs: build_client
# runs-on: [ self-hosted, gcr ]
# timeout-minutes: 600
# env:
# working-directory: src
# DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
# DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
#
# steps:
# - name: Check out code into the Go module directory
# uses: actions/checkout@v4
# with:
# ref: ypwong99/temp-experiment-image-sizes
#
# - id: auth
# name: Configure GCR credentials
# uses: google-github-actions/auth@v1
# with:
# credentials_json: ${{ secrets.GCR_CREDENTIALS }}
#
# - name: Set up gcloud
# uses: google-github-actions/setup-gcloud@v1
# with:
# version: ">= 363.0.0"
#
# - name: Set up Node 16.16.0
# uses: actions/setup-node@v3
# with:
# node-version: 16.16.0
#
# - name: Download client artifact
# uses: actions/download-artifact@v3
# with:
# name: STeLLAR-build
#
# - name: Untar client build
# working-directory: ${{ env.working-directory }}
# run: tar --strip-components=1 -xvf ../build.tar -C .
#
# - name: Run experiment
# working-directory: ${{ env.working-directory }}
# run: ./stellar -c ../experiments/image-size/cold-image-size-50-gcr.json
#
# - uses: actions/upload-artifact@v3
# with:
# name: cold-image-size-50-gcr
# path: ${{ env.working-directory }}/latency-samples

# cold-image-size-100-gcr:
# name: GCR 100MB image size experiment
# needs: build_client
# runs-on: [ self-hosted, gcr ]
# timeout-minutes: 600
# env:
# working-directory: src
# DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
# DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
#
# steps:
# - name: Check out code into the Go module directory
# uses: actions/checkout@v4
# with:
# ref: ypwong99/temp-experiment-image-sizes
#
# - id: auth
# name: Configure GCR credentials
# uses: google-github-actions/auth@v1
# with:
# credentials_json: ${{ secrets.GCR_CREDENTIALS }}
#
# - name: Set up gcloud
# uses: google-github-actions/setup-gcloud@v1
# with:
# version: ">= 363.0.0"
#
# - name: Set up Node 16.16.0
# uses: actions/setup-node@v3
# with:
# node-version: 16.16.0
#
# - name: Download client artifact
# uses: actions/download-artifact@v3
# with:
# name: STeLLAR-build
#
# - name: Untar client build
# working-directory: ${{ env.working-directory }}
# run: tar --strip-components=1 -xvf ../build.tar -C .
#
# - name: Run experiment
# working-directory: ${{ env.working-directory }}
# run: ./stellar -c ../experiments/image-size/cold-image-size-100-gcr.json
#
# - uses: actions/upload-artifact@v3
# with:
# name: cold-image-size-100-gcr
# path: ${{ env.working-directory }}/latency-samples

cold-image-size-50-gcr-read-entire:
name: GCR 50MB image size experiment (read entire)
needs: build_client
runs-on: [ self-hosted, gcr ]
timeout-minutes: 600
env:
working-directory: src
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
ref: ypwong99/temp-experiment-image-sizes

- id: auth
name: Configure GCR credentials
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCR_CREDENTIALS }}

- name: Set up gcloud
uses: google-github-actions/setup-gcloud@v1
with:
version: ">= 363.0.0"

- name: Set up Node 16.16.0
uses: actions/setup-node@v3
with:
node-version: 16.16.0

- name: Download client artifact
uses: actions/download-artifact@v3
with:
name: STeLLAR-build

- name: Untar client build
working-directory: ${{ env.working-directory }}
run: tar --strip-components=1 -xvf ../build.tar -C .

- name: Run experiment
working-directory: ${{ env.working-directory }}
run: ./stellar -c ../experiments/image-size/cold-image-size-50-gcr-read-entire.json

- uses: actions/upload-artifact@v3
with:
name: cold-image-size-50-gcr-read-entire
path: ${{ env.working-directory }}/latency-samples

cold-image-size-100-gcr-read-entire:
name: GCR 100MB image size experiment (read entire)
needs: build_client
runs-on: [ self-hosted, gcr ]
timeout-minutes: 600
env:
working-directory: src
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
ref: ypwong99/temp-experiment-image-sizes

- id: auth
name: Configure GCR credentials
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCR_CREDENTIALS }}

- name: Set up gcloud
uses: google-github-actions/setup-gcloud@v1
with:
version: ">= 363.0.0"

- name: Set up Node 16.16.0
uses: actions/setup-node@v3
with:
node-version: 16.16.0

- name: Download client artifact
uses: actions/download-artifact@v3
with:
name: STeLLAR-build

- name: Untar client build
working-directory: ${{ env.working-directory }}
run: tar --strip-components=1 -xvf ../build.tar -C .

- name: Run experiment
working-directory: ${{ env.working-directory }}
run: ./stellar -c ../experiments/image-size/cold-image-size-100-gcr-read-entire.json

- uses: actions/upload-artifact@v3
with:
name: cold-image-size-100-gcr-read-entire
path: ${{ env.working-directory }}/latency-samples

cold-image-size-100-gcr-read-consecutive:
name: GCR 100MB image size experiment (read consecutive)
needs: build_client
runs-on: [ self-hosted, gcr ]
timeout-minutes: 600
env:
working-directory: src
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
ref: ypwong99/temp-experiment-image-sizes

- id: auth
name: Configure GCR credentials
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCR_CREDENTIALS }}

- name: Set up gcloud
uses: google-github-actions/setup-gcloud@v1
with:
version: ">= 363.0.0"

- name: Set up Node 16.16.0
uses: actions/setup-node@v3
with:
node-version: 16.16.0

- name: Download client artifact
uses: actions/download-artifact@v3
with:
name: STeLLAR-build

- name: Untar client build
working-directory: ${{ env.working-directory }}
run: tar --strip-components=1 -xvf ../build.tar -C .

- name: Run experiment
working-directory: ${{ env.working-directory }}
run: ./stellar -c ../experiments/image-size/cold-image-size-100-gcr-read-consecutive.json

- uses: actions/upload-artifact@v3
with:
name: cold-image-size-100-gcr-read-consecutive
path: ${{ env.working-directory }}/latency-samples

cold-image-size-100-gcr-read-per-page:
name: GCR 100MB image size experiment (read per page)
needs: build_client
runs-on: [ self-hosted, gcr ]
timeout-minutes: 600
env:
working-directory: src
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
ref: ypwong99/temp-experiment-image-sizes

- id: auth
name: Configure GCR credentials
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCR_CREDENTIALS }}

- name: Set up gcloud
uses: google-github-actions/setup-gcloud@v1
with:
version: ">= 363.0.0"

- name: Set up Node 16.16.0
uses: actions/setup-node@v3
with:
node-version: 16.16.0

- name: Download client artifact
uses: actions/download-artifact@v3
with:
name: STeLLAR-build

- name: Untar client build
working-directory: ${{ env.working-directory }}
run: tar --strip-components=1 -xvf ../build.tar -C .

- name: Run experiment
working-directory: ${{ env.working-directory }}
run: ./stellar -c ../experiments/image-size/cold-image-size-100-gcr-read-per-page.json

- uses: actions/upload-artifact@v3
with:
name: cold-image-size-100-gcr-read-per-page
path: ${{ env.working-directory }}/latency-samples

cold-image-size-100-gcr-read-random:
name: GCR 100MB image size experiment (read random)
needs: build_client
runs-on: [ self-hosted, gcr ]
timeout-minutes: 600
env:
working-directory: src
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
ref: ypwong99/temp-experiment-image-sizes

- id: auth
name: Configure GCR credentials
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCR_CREDENTIALS }}

- name: Set up gcloud
uses: google-github-actions/setup-gcloud@v1
with:
version: ">= 363.0.0"

- name: Set up Node 16.16.0
uses: actions/setup-node@v3
with:
node-version: 16.16.0

- name: Download client artifact
uses: actions/download-artifact@v3
with:
name: STeLLAR-build

- name: Untar client build
working-directory: ${{ env.working-directory }}
run: tar --strip-components=1 -xvf ../build.tar -C .

- name: Run experiment
working-directory: ${{ env.working-directory }}
run: ./stellar -c ../experiments/image-size/cold-image-size-100-gcr-read-random.json

- uses: actions/upload-artifact@v3
with:
name: cold-image-size-100-gcr-read-random
path: ${{ env.working-directory }}/latency-samples
Loading

0 comments on commit 744977d

Please sign in to comment.