kind: pipeline type: docker name: build steps: ################################################################################################################################################ ## example of running dind manually in drone # - name: build # image: docker # environment: # REGISTRY_USER: # from_secret: DOCKER_USERNAME # REGISTRY_PASS: # from_secret: DOCKER_PASSWORD # volumes: # - name: docker_sock # path: /var/run/docker.sock # commands: # - export DRONE_SHA=${DRONE_COMMIT_SHA:0:7} # - docker login gitea.bsidesolutions.net --username $REGISTRY_USER --password $REGISTRY_PASS # # - docker exec --env-file .env.drone compose-container mkdir /home/node # # - docker exec --env-file .env.drone compose-container mkdir /home/node/app # # - docker cp . compose-container:/home/node/app # # - docker exec -w /home/node/app --env-file .env.drone compose-container ls # check current directory # - docker build -t gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio:${DRONE_COMMIT_SHA:0:7} . # - docker tag gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio:${DRONE_COMMIT_SHA:0:7} # - docker tag gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio:latest ################################################################################################################################################ - name: Setup Build image: gitea.bsidesolutions.net/bside-solutions/docker-compose-v2-alpine:latest commands: # - docker container stop compose-container - docker container prune -f - docker image prune -f # - docker login gitea.bsidesolutions.net --username $REGISTRY_USER --password $REGISTRY_PASS # - docker pull gitea.bsidesolutions.net/bside-solutions/docker-compose-v2-alpine:latest # - docker run -v /var/run/docker.sock:/var/run/docker.sock --rm -d --name compose-container gitea.bsidesolutions.net/bside-solutions/docker-compose-v2-alpine sleep inf #start container in detached mode # - sleep 5 # give container some time to fully start volumes: - name: docker_sock path: /var/run/docker.sock - name: Build and Push (PR) Container Image image: plugins/docker when: branch: - feature/* settings: username: from_secret: DOCKER_USERNAME password: from_secret: DOCKER_PASSWORD repo: gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio registry: gitea.bsidesolutions.net dockerfile: ./Dockerfile force_tag: true tags: - latest - pr-build-${sed 's/\//-/g' <<< ${DRONE_BRANCH}} - name: Build and Push (Staging) Container Image image: plugins/docker when: branch: - develop settings: username: from_secret: DOCKER_USERNAME password: from_secret: DOCKER_PASSWORD repo: gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio registry: gitea.bsidesolutions.net dockerfile: ./Dockerfile force_tag: true tags: - latest - dev - dev-${DRONE_COMMIT_SHA:0:10} - name: Build and Push (Production) Container Image image: plugins/docker when: branch: - main settings: username: from_secret: DOCKER_USERNAME password: from_secret: DOCKER_PASSWORD repo: gitea.bsidesolutions.net/oonyeje/oonyeje-portfolio registry: gitea.bsidesolutions.net dockerfile: ./Dockerfile force_tag: true tags: - latest - release - release-${DRONE_COMMIT_SHA:0:10} trigger: branch: - main - develop - feature/* event: include: - push # - name: deploy-staging # image: plugins/ansible:latest # settings: # playbook: ansible/playbook.staging.yml # galaxy: ansible/requirements.yml # inventory: ansible/inventory.yml # become_user: bside # user: bside # verbose: 4 # become: true # list_tasks: true # list_hosts: true # private_key: # from_secret: STAGING_SERVER_PRIVATE_KEY # trigger: # branch: # - master # - prod # - qa # - feature/* # event: # - push # - pull_request # --- # kind: pipeline # type: exec # name: staging-deploy # platform: # os: linux # arch: amd64 # steps: # - name: ansible-deploy # commands: # - ansible --version # - ansible-galaxy install --force --role-file ansible/requirements.yml -vvvv # - ansible-playbook --inventory ansible/inventory.yml --list-hosts ansible/playbook.staging.yml # trigger: # branch: # - master # - prod # - qa # - feature/* # event: # - push # - pull_request volumes: - name: docker_sock host: path: /var/run/docker.sock