aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.woodpecker/debug.yaml44
-rw-r--r--.woodpecker/publish.yaml33
-rw-r--r--.woodpecker/release.yaml69
-rw-r--r--README.md2
-rw-r--r--shell.nix9
5 files changed, 156 insertions, 1 deletions
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)
===
<p align="center" style="text-align:center;">
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 \