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..a28bd6675 --- /dev/null +++ b/.github/workflows/scylla_bench_docker.yml @@ -0,0 +1,64 @@ +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: Start Jenkins job + uses: geokats7/jenkins_client@main + with: + jenkins_job_name: 'scylla-staging/sylwia.szunejko/longevity-twcs-3h' + jenkins_job_parameters: '{"SCT_STRESS_IMAGE.scylla-bench": "scylladb/gocql-extended-ci:scylla-bench-${NAME}"}' + jenkins_base_url: 'https://jenkins.scylladb.com/' + jenkins_user: sylwiaszunejko + jenkins_password: ${{ secrets.JENKINS_TOKEN }} + wait_for_result: 'True'