You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.7 KiB
83 lines
2.7 KiB
variables:
|
|
environment: &docker-environment
|
|
NAME: gitea.treehouse.systems/treehouse/mastodon
|
|
DATE_COMMAND: export COMMIT_DATE=$(date -u -Idate -d @$(git show -s --format=%ct))
|
|
docker-step: &docker-step
|
|
image: docker:rc-git
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
environment:
|
|
<<: *docker-environment
|
|
|
|
clone:
|
|
git:
|
|
image: woodpeckerci/plugin-git
|
|
settings:
|
|
partial: false
|
|
depth: 10
|
|
|
|
pipeline:
|
|
# build-base:
|
|
# <<: *docker-step
|
|
# commands:
|
|
# - docker version
|
|
# - docker image build -f Dockerfile --build-arg SOURCE_TAG=$CI_COMMIT_SHA . --target build-base -t $NAME:build-base
|
|
|
|
# build:
|
|
# <<: *docker-step
|
|
# commands:
|
|
# - docker version
|
|
# - docker image build -f Dockerfile --build-arg SOURCE_TAG=$CI_COMMIT_SHA . --target build -t $NAME:build
|
|
|
|
# output-base:
|
|
# <<: *docker-step
|
|
# commands:
|
|
# - docker version
|
|
# - docker image build -f Dockerfile --build-arg SOURCE_TAG=$CI_COMMIT_SHA . --target output-base -t $NAME:build
|
|
|
|
# the world is not yet ready for this step
|
|
# test:
|
|
# <<: *docker-step
|
|
# commands:
|
|
# - docker run --rm -e RAILS_ENV=test -e NODE_ENV=development $NAME:build-base sh -c 'bundle config set --local without development && bundle install && rake spec'
|
|
|
|
output:
|
|
<<: *docker-step
|
|
commands:
|
|
- eval $DATE_COMMAND
|
|
- export TAG=$${COMMIT_DATE}.$CI_COMMIT_SHA && echo $${TAG}
|
|
- docker image build -f Dockerfile --build-arg SOURCE_TAG=$CI_COMMIT_SHA . -t $NAME:latest
|
|
- docker image build -f streaming/Dockerfile --build-arg SOURCE_TAG=$CI_COMMIT_SHA . -t $NAME-streaming:latest
|
|
- docker tag $NAME:latest $NAME:$TAG
|
|
- docker tag $NAME-streaming:latest $NAME-streaming:$TAG
|
|
# idk what's actually persisted between steps
|
|
# /shrug this works, so,???
|
|
- echo $${TAG} > tags.txt
|
|
- echo latest >> tags.txt
|
|
|
|
# maybe we can use tags someday,,,
|
|
# tag-tag:
|
|
# image: *docker-git
|
|
# volumes:
|
|
# - /var/run/docker.sock:/var/run/docker.sock
|
|
# commands:
|
|
# - docker tag $NAME:latest $NAME:$CI_COMMIT_TAG
|
|
# when:
|
|
# event: tag
|
|
|
|
push:
|
|
<<: *docker-step
|
|
commands:
|
|
- echo $REGISTRY_SECRET | docker login -u $REGISTRY_USER --password-stdin gitea.treehouse.systems
|
|
- cat tags.txt | xargs -n 1 -I% echo docker image push $NAME:%
|
|
- cat tags.txt | xargs -n 1 -I% docker image push $NAME:%
|
|
- cat tags.txt | xargs -n 1 -I% echo docker image push $NAME-streaming:%
|
|
- cat tags.txt | xargs -n 1 -I% docker image push $NAME-streaming:%
|
|
when:
|
|
event: [push, tag]
|
|
branch: main
|
|
secrets: [REGISTRY_SECRET]
|
|
environment:
|
|
<<: *docker-environment
|
|
REGISTRY_USER: ariadne
|