From 8b6a44a53d0b5b5f61dd597ae8d698a873868305 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Thu, 8 Feb 2024 15:41:52 +0100 Subject: [PATCH 1/3] [woodpecker] convert drone pipelines to woodpecker --- .woodpecker/debug.yaml | 44 +++++++++++++++++++++++++ .woodpecker/publish.yaml | 33 +++++++++++++++++++ .woodpecker/release.yaml | 69 ++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- shell.nix | 9 ++++++ 5 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 .woodpecker/debug.yaml create mode 100644 .woodpecker/publish.yaml create mode 100644 .woodpecker/release.yaml diff --git a/.woodpecker/debug.yaml b/.woodpecker/debug.yaml new file mode 100644 index 00000000..9486f672 --- /dev/null +++ b/.woodpecker/debug.yaml @@ -0,0 +1,44 @@ +when: + event: + - push + - tag + - pull_request + - deployment + - cron + +steps: + - name: check formatting + image: nixpkgs/nix:nixos-22.05 + commands: + - nix-shell --attr rust --run "cargo fmt -- --check" + + - name: build + image: nixpkgs/nix:nixos-22.05 + commands: + - nix-build --no-build-output --attr clippy.amd64 --argstr git_version ${CI_COMMIT_TAG:-$CI_COMMIT_SHA} + + - name: unit + func tests + image: nixpkgs/nix:nixos-22.05 + environment: + GARAGE_TEST_INTEGRATION_EXE: result-bin/bin/garage + GARAGE_TEST_INTEGRATION_PATH: tmp-garage-integration + commands: + - nix-build --no-build-output --attr clippy.amd64 --argstr git_version ${CI_COMMIT_TAG:-$CI_COMMIT_SHA} + - nix-build --no-build-output --attr test.amd64 + - ./result/bin/garage_db-* + - ./result/bin/garage_api-* + - ./result/bin/garage_model-* + - ./result/bin/garage_rpc-* + - ./result/bin/garage_table-* + - ./result/bin/garage_util-* + - ./result/bin/garage_web-* + - ./result/bin/garage-* + - ./result/bin/integration-* || (cat tmp-garage-integration/stderr.log; false) + - rm result + - rm -rv tmp-garage-integration + + - name: integration tests + image: nixpkgs/nix:nixos-22.05 + commands: + - nix-build --no-build-output --attr clippy.amd64 --argstr git_version ${CI_COMMIT_TAG:-$CI_COMMIT_SHA} + - nix-shell --attr integration --run ./script/test-smoke.sh || (cat /tmp/garage.log; false) diff --git a/.woodpecker/publish.yaml b/.woodpecker/publish.yaml new file mode 100644 index 00000000..7e004ddd --- /dev/null +++ b/.woodpecker/publish.yaml @@ -0,0 +1,33 @@ +when: + event: + - deployment + - cron + +depends_on: + - release + +steps: + - name: multiarch-docker + image: nixpkgs/nix:nixos-22.05 + environment: + HOME: "/root" + secrets: + - docker_auth + commands: + - mkdir -p /root/.docker + - echo $DOCKER_AUTH > /root/.docker/config.json + - sha512sum /root/.docker/config.json + - export CONTAINER_TAG=${CI_COMMIT_TAG:-$CI_COMMIT_SHA} + - nix-shell --attr release --run "multiarch_docker" + + - name: refresh-index + image: nixpkgs/nix:nixos-22.05 + secrets: + - source: garagehq_aws_access_key_id + target: AWS_ACCESS_KEY_ID + - source: garagehq_aws_secret_access_key + target: AWS_SECRET_ACCESS_KEY + commands: + - mkdir -p /etc/nix && cp nix/nix.conf /etc/nix/nix.conf + - nix-shell --attr release --run "refresh_index" + diff --git a/.woodpecker/release.yaml b/.woodpecker/release.yaml new file mode 100644 index 00000000..1fe48529 --- /dev/null +++ b/.woodpecker/release.yaml @@ -0,0 +1,69 @@ +when: + event: + - deployment + - cron + +matrix: + include: + - ARCH: amd64 + TARGET: x86_64-unknown-linux-musl + - ARCH: i386 + TARGET: i686-unknown-linux-musl + - ARCH: arm64 + TARGET: aarch64-unknown-linux-musl + - ARCH: arm + TARGET: armv6l-unknown-linux-musleabihf + +steps: + - name: build + image: nixpkgs/nix:nixos-22.05 + commands: + - nix-build --no-build-output --attr pkgs.${ARCH}.release --argstr git_version ${CI_COMMIT_TAG:-$CI_COMMIT_SHA} + - nix-shell --attr rust --run "./script/not-dynamic.sh result-bin/bin/garage" + + - name: integration tests + image: nixpkgs/nix:nixos-22.05 + commands: + - nix-shell --attr integration --run ./script/test-smoke.sh || (cat /tmp/garage.log; false) + when: + - matrix: + ARCH: amd64 + - matrix: + ARCH: i386 + + - name: upgrade tests + image: nixpkgs/nix:nixos-22.05 + commands: + - nix-shell --attr integration --run "./script/test-upgrade.sh v0.8.4 x86_64-unknown-linux-musl" || (cat /tmp/garage.log; false) + when: + - matrix: + ARCH: amd64 + - matrix: + ARCH: i386 + + - name: push static binary + image: nixpkgs/nix:nixos-22.05 + environment: + TARGET: "${TARGET}" + secrets: + - source: garagehq_aws_access_key_id + target: AWS_ACCESS_KEY_ID + - source: garagehq_aws_secret_access_key + target: AWS_SECRET_ACCESS_KEY + commands: + - nix-shell --attr release --run "to_s3_woodpecker" + + - name: docker build and publish + image: nixpkgs/nix:nixos-22.05 + environment: + DOCKER_PLATFORM: "linux/${ARCH}" + CONTAINER_NAME: "dxflrs/${ARCH}_garage" + HOME: "/kaniko" + secrets: + - docker_auth + commands: + - mkdir -p /kaniko/.docker + - echo $DOCKER_AUTH > /kaniko/.docker/config.json + - sha512sum /kaniko/.docker/config.json + - export CONTAINER_TAG=${CI_COMMIT_TAG:-$CI_COMMIT_SHA} + - nix-shell --attr release --run "to_docker" diff --git a/README.md b/README.md index 9992fff2..a0f082a5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Garage [![Build Status](https://drone.deuxfleurs.fr/api/badges/Deuxfleurs/garage/status.svg?ref=refs/heads/main)](https://drone.deuxfleurs.fr/Deuxfleurs/garage) +Garage [![status-badge](https://woodpecker.deuxfleurs.fr/api/badges/1/status.svg)](https://woodpecker.deuxfleurs.fr/repos/1) ===

diff --git a/shell.nix b/shell.nix index 991417b5..6d6cc68f 100644 --- a/shell.nix +++ b/shell.nix @@ -95,6 +95,15 @@ in { s3://garagehq.deuxfleurs.fr/_releases/''${DRONE_TAG:-$DRONE_COMMIT}/''${TARGET}/garage } + function to_s3_woodpecker { + aws \ + --endpoint-url https://garage.deuxfleurs.fr \ + --region garage \ + s3 cp \ + ./result-bin/bin/garage \ + s3://garagehq.deuxfleurs.fr/_releases/''${CI_COMMIT_TAG:-$CI_COMMIT_SHA}/''${TARGET}/garage + } + function to_docker { executor \ --force \ From 4e62e86644ddfd28e01951f8d2f09fc421b0f716 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Thu, 8 Feb 2024 18:27:33 +0100 Subject: [PATCH 2/3] [woodpecker] disable docker image generation as auth is broken for now --- .woodpecker/publish.yaml | 25 ++++++++++++------------- .woodpecker/release.yaml | 28 ++++++++++++++-------------- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/.woodpecker/publish.yaml b/.woodpecker/publish.yaml index 7e004ddd..b45d379c 100644 --- a/.woodpecker/publish.yaml +++ b/.woodpecker/publish.yaml @@ -7,19 +7,6 @@ depends_on: - release steps: - - name: multiarch-docker - image: nixpkgs/nix:nixos-22.05 - environment: - HOME: "/root" - secrets: - - docker_auth - commands: - - mkdir -p /root/.docker - - echo $DOCKER_AUTH > /root/.docker/config.json - - sha512sum /root/.docker/config.json - - export CONTAINER_TAG=${CI_COMMIT_TAG:-$CI_COMMIT_SHA} - - nix-shell --attr release --run "multiarch_docker" - - name: refresh-index image: nixpkgs/nix:nixos-22.05 secrets: @@ -31,3 +18,15 @@ steps: - mkdir -p /etc/nix && cp nix/nix.conf /etc/nix/nix.conf - nix-shell --attr release --run "refresh_index" +# - name: multiarch-docker +# image: nixpkgs/nix:nixos-22.05 +# environment: +# HOME: "/root" +# secrets: +# - docker_auth +# commands: +# - mkdir -p /root/.docker +# - echo $DOCKER_AUTH > /root/.docker/config.json +# - sha512sum /root/.docker/config.json +# - export CONTAINER_TAG=${CI_COMMIT_TAG:-$CI_COMMIT_SHA} +# - nix-shell --attr release --run "multiarch_docker" diff --git a/.woodpecker/release.yaml b/.woodpecker/release.yaml index 1fe48529..4f4771b6 100644 --- a/.woodpecker/release.yaml +++ b/.woodpecker/release.yaml @@ -53,17 +53,17 @@ steps: commands: - nix-shell --attr release --run "to_s3_woodpecker" - - name: docker build and publish - image: nixpkgs/nix:nixos-22.05 - environment: - DOCKER_PLATFORM: "linux/${ARCH}" - CONTAINER_NAME: "dxflrs/${ARCH}_garage" - HOME: "/kaniko" - secrets: - - docker_auth - commands: - - mkdir -p /kaniko/.docker - - echo $DOCKER_AUTH > /kaniko/.docker/config.json - - sha512sum /kaniko/.docker/config.json - - export CONTAINER_TAG=${CI_COMMIT_TAG:-$CI_COMMIT_SHA} - - nix-shell --attr release --run "to_docker" +# - name: docker build and publish +# image: nixpkgs/nix:nixos-22.05 +# environment: +# DOCKER_PLATFORM: "linux/${ARCH}" +# CONTAINER_NAME: "dxflrs/${ARCH}_garage" +# HOME: "/kaniko" +# secrets: +# - docker_auth +# commands: +# - mkdir -p /kaniko/.docker +# - echo $DOCKER_AUTH > /kaniko/.docker/config.json +# - sha512sum /kaniko/.docker/config.json +# - export CONTAINER_TAG=${CI_COMMIT_TAG:-$CI_COMMIT_SHA} +# - nix-shell --attr release --run "to_docker" From 25c2f37667eb3b06bb14869129e33f78a9705b1b Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Thu, 8 Feb 2024 18:42:26 +0100 Subject: [PATCH 3/3] [woodpecker] remove upgrade test on i386 --- .woodpecker/release.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.woodpecker/release.yaml b/.woodpecker/release.yaml index 4f4771b6..8580441c 100644 --- a/.woodpecker/release.yaml +++ b/.woodpecker/release.yaml @@ -38,8 +38,6 @@ steps: when: - matrix: ARCH: amd64 - - matrix: - ARCH: i386 - name: push static binary image: nixpkgs/nix:nixos-22.05