diff --git a/.github/workflows/Dockerfile b/.github/workflows/Dockerfile new file mode 100644 index 000000000..2070d8b3d --- /dev/null +++ b/.github/workflows/Dockerfile @@ -0,0 +1,15 @@ +FROM golang:1.21 + +ARG version +ARG fork +ENV version=${version} +ENV fork=${fork:-scylladb/scylla-bench} + +RUN apt-get update && apt-get -y install --no-install-recommends unzip curl && apt-get clean && rm -rf /var/lib/apt/lists/* + +RUN curl -Lo sb.zip https://github.com/${fork}/archive/refs/${version}.zip && \ + unzip sb.zip && \ + cd ./scylla-bench-* && \ + GO111MODULE=on go install . && \ + cd .. && \ + rm -f sb.zip \ No newline at end of file diff --git a/.github/workflows/scylla_bench_docker.yml b/.github/workflows/scylla_bench_docker.yml new file mode 100644 index 000000000..db3c1a6e8 --- /dev/null +++ b/.github/workflows/scylla_bench_docker.yml @@ -0,0 +1,63 @@ +name: Build scylla-bench docker image with gocql PR + +on: + pull_request: + types: [opened, synchronize, reopened, labeled] + +jobs: + # authorize: + # environment: + # ${{ github.event_name == 'pull_request_target' && + # github.event.pull_request.head.repo.full_name != github.repository && + # 'default' || 'internal' }} + # runs-on: ubuntu-latest + # steps: + # - run: true + + build-scylla-bench: + # if: contains(github.event.pull_request.labels.*.name, 'extended-ci') + # needs: authorize + runs-on: ubuntu-latest + steps: + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Check out the scylla-bench repository + uses: actions/checkout@v2 + with: + repository: scylladb/scylla-bench + path: scylla-bench + + - name: Checkout GoCQL PR Repository + uses: actions/checkout@v2 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.event.pull_request.head.ref }} + path: gocql + + - name: Replace gocql with the PR version + run: | + cd scylla-bench + go mod edit -replace github.com/gocql/gocql=../gocql + go mod tidy + + - name: Build and push Scylla-bench Docker Image + run: | + cd scylla-bench + export SCYLLA_BENCH_VERSION=tags/v0.1.9 + export NAME="${{ github.event.pull_request.head.ref }}" + export SCYLLA_BENCH_DOCKER_IMAGE=scylladb/gocql-extended-ci:scylla-bench-${NAME} + docker build -f ../gocql/.github/workflows/Dockerfile . -t ${SCYLLA_BENCH_DOCKER_IMAGE} --build-arg version=$SCYLLA_BENCH_VERSION + docker push ${SCYLLA_BENCH_DOCKER_IMAGE} + + - name: trigger Jenkins Job + uses: appleboy/jenkins-action@master + with: + url: "https://jenkins.scylladb.com" + user: "sylwiaszunejko" + token: ${{ secrets.JENKINS_TOKEN }} + job: "longevity-twcs-3h" + args: '{"SCT_STRESS_IMAGE.scylla-bench": "scylladb/gocql-extended-ci:scylla-bench-${NAME}"}'