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: 5 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 # 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' build: <<: *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 tag $NAME:latest $NAME:$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:% when: event: [push, tag] branch: main secrets: [REGISTRY_SECRET] environment: <<: *docker-environment REGISTRY_USER: ariadne