From 2245c80c05683070e8146f6d3db4b1c1f77e7da0 Mon Sep 17 00:00:00 2001 From: Marlon Saglia Date: Thu, 15 Aug 2024 14:17:42 +0200 Subject: [PATCH] Migrate workflows to Github Actions --- .github/workflows/ci.yml | 113 +++++++++++++++++++++++++++++++++++++++ Dockerfile | 6 ++- 2 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..456cf3a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,113 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + + schedule: + - cron: "0 0 * * *" + +defaults: + run: + shell: bash + +jobs: + build: + runs-on: ubuntu-latest + container: + image: vespaengine/vespa-build-almalinux-8:latest + + steps: + - name: Setup tools + run: | + dnf config-manager --add-repo https://raw.githubusercontent.com/vespa-engine/vespa/master/dist/vespa-engine.repo + + LATEST="$(curl -SsL https://api.github.com/repos/sibprogrammer/xq/releases/latest | jq -r '.tag_name')" + curl -sSL -o xq.tar.gz https://github.com/sibprogrammer/xq/releases/latest/download/xq_${LATEST//v/}_linux_amd64.tar.gz + tar -xzf xq.tar.gz + mv xq /usr/local/bin/xq + + - name: Get Latest Vespa version + id: vespa-metadata + run: | + VESPA_VERSION=$(curl -sSL https://repo1.maven.org/maven2/com/yahoo/vespa/parent/maven-metadata.xml | \ + xq -x '/metadata/versioning/latest') + echo "Using version: $VESPA_VERSION" + echo "version=$VESPA_VERSION" >> $GITHUB_OUTPUT + + - name: Configure Git + env: + VESPA_VERSION: ${{ steps.vespa-metadata.outputs.version }} + run: | + git config --global --add safe.directory "$(pwd)" + git config --global user.email "bot+actions@vespa.ai" + git config --global user.name "GitHub Actions" + + - uses: actions/checkout@v4 + + - name: build-rpm + env: + VESPA_VERSION: ${{ steps.vespa-metadata.outputs.version }} + run: | + # git config --global --add safe.directory "$(pwd)" + # git config --global user.email "bot+actions@vespa.ai" + # git config --global user.name "GitHub Actions" + + git tag -d "v$VESPA_VERSION" || true + git tag -a "v$VESPA_VERSION" -m "Version $VESPA_VERSION" + + mkdir builds + make -f .copr/Makefile rpm outdir=$(pwd)/builds + + git status + ls -lA builds + + - uses: actions/upload-artifact@v4 + with: + name: vespa-rpm + path: builds + retention-days: 1 + + test: + runs-on: ubuntu-latest + + needs: + - build + + steps: + - uses: actions/checkout@v4 + + - uses: actions/download-artifact@v4 + with: + name: vespa-rpm + + - name: Build + uses: docker/build-push-action@v6 + with: + load: true + tags: local-vespa-ann-benchmark + + - uses: actions/checkout@v4 + with: + repository: erikbern/ann-benchmarks + path: ann-benchmarks + + - name: Update Dockerfile + run: | + sed -i -e 's,^FROM.*,FROM local-vespa-ann-benchmark,' ann_benchmarks/algorithms/vespa/Dockerfile + + - name: Build + uses: docker/build-push-action@v6 + with: + load: true + tags: ann-benchmark + context: ann-benchmarks + file: ann_benchmarks/algorithms/vespa/Dockerfile + + - name: Test + run: | + echo "No tests. Please add." diff --git a/Dockerfile b/Dockerfile index 3790cff..75376e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,5 +7,9 @@ RUN dnf -y install epel-release && \ RUN --mount=type=bind,target=/include,source=.,ro \ dnf -y module enable maven:3.8 && \ + echo "================================================" && \ + ls -lA /include/ && \ + echo "================================================" && \ + echo "$(arch)" && \ + echo "================================================" && \ dnf -y localinstall --enablerepo=powertools /include/vespa-ann-benchmark-[0-9].*.$(arch).rpm -