diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml new file mode 100644 index 0000000..e76b5cf --- /dev/null +++ b/.woodpecker/build.yaml @@ -0,0 +1,35 @@ +matrix: + platform: + - linux/amd64 + - linux/arm64 + +labels: + platform: ${platform} + +when: + branch: main + event: [push, pull_request, tag] + +steps: + test-build: + image: docker:27-dind + commands: + - docker buildx build -t source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-${platform##linux/} . + volumes: + - /var/run/docker.sock:/var/run/docker.sock + when: + event: pull_request + + build-to-registry: + image: docker:27-dind + environment: + CI_USER_PASSWORD: + from_secret: registry_token + commands: + - docker login -u ${CI_REPO_OWNER} -p $${CI_USER_PASSWORD} source.hodakov.me + - docker buildx build -t source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-${platform##linux/} . + - docker push source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-${platform##linux/} + volumes: + - /var/run/docker.sock:/var/run/docker.sock + when: + event: [push, tag] diff --git a/.woodpecker/docker.yaml b/.woodpecker/docker.yaml deleted file mode 100644 index a1e085d..0000000 --- a/.woodpecker/docker.yaml +++ /dev/null @@ -1,35 +0,0 @@ - -when: - branch: main - event: [push, pull_request, tag] - -variables: - - &repo source.hodakov.me/containers/renkit - -steps: - dryrun: - image: woodpeckerci/plugin-docker-buildx:5.1.0 - privileged: true - settings: - dockerfile: Dockerfile - platforms: linux/arm64/v8,linux/amd64 - dry_run: true - repo: *repo - auto_tag: true - when: - event: pull_request - - publish: - image: woodpeckerci/plugin-docker-buildx:5.1.0 - privileged: true - settings: - dockerfile: Dockerfile - platforms: linux/arm64/v8,linux/amd64 - repo: *repo - registry: source.hodakov.me - auto_tag: true - username: ${CI_REPO_OWNER} - password: - from_secret: registry_token - when: - event: [push, tag] diff --git a/.woodpecker/tag.yaml b/.woodpecker/tag.yaml new file mode 100644 index 0000000..ac0a368 --- /dev/null +++ b/.woodpecker/tag.yaml @@ -0,0 +1,46 @@ +when: + branch: main + event: [push, tag] + +depends_on: + - build + +steps: + tag latest: + image: docker:27-dind + environment: + CI_USER_PASSWORD: + from_secret: registry_token + commands: + - docker login -u ${CI_REPO_OWNER} -p $${CI_USER_PASSWORD} source.hodakov.me + - docker pull source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-amd64 + - docker pull source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-arm64 + - docker manifest create source.hodakov.me/containers/renkit:latest source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-amd64 source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-arm64 + - docker manifest push source.hodakov.me/containers/renkit:latest + volumes: + - /var/run/docker.sock:/var/run/docker.sock + when: + event: push + + tag semver: + image: docker:27-dind + environment: + CI_USER_PASSWORD: + from_secret: registry_token + commands: + - set -eu + - docker login -u ${CI_REPO_OWNER} -p $${CI_USER_PASSWORD} source.hodakov.me + - source ./scripts/semver.sh + - echo "Creating manifest for $${DOCKER_EXACT_TAG}, $${DOCKER_MAJOR_TAG} and $${DOCKER_MINOR_TAG}" + - docker pull source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-amd64 + - docker pull source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-arm64 + - docker manifest create source.hodakov.me/containers/renkit:$${DOCKER_EXACT_TAG} source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-amd64 source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-arm64 + - docker manifest create source.hodakov.me/containers/renkit:$${DOCKER_MINOR_TAG} source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-amd64 source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-arm64 + - docker manifest create source.hodakov.me/containers/renkit:$${DOCKER_MAJOR_TAG} source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-amd64 source.hodakov.me/containers/renkit:${CI_COMMIT_SHA:0:10}-arm64 + - docker manifest push source.hodakov.me/containers/renkit:$${DOCKER_EXACT_TAG} + - docker manifest push source.hodakov.me/containers/renkit:$${DOCKER_MINOR_TAG} + - docker manifest push source.hodakov.me/containers/renkit:$${DOCKER_MAJOR_TAG} + volumes: + - /var/run/docker.sock:/var/run/docker.sock + when: + event: tag