@installdoc/ansible-gas-station
Version:
An Ansible playbook that provisions your network with software from GitHub Awesome lists, developed with disaster recovery in mind ⛽🔥🤤
51 lines (50 loc) • 1.56 kB
YAML
---
publish:dockerhub:
stage: publish
image: megabytelabs/docker-publish:slim
services:
- docker:20.10.7-dind
rules:
- if: $DO_CI == 'false'
when: never
- if: $CI_COMMIT_TITLE =~ /^(automation|chore).*/
when: never
- if: $CI_COMMIT_BRANCH == 'synchronize'
when: never
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
changes:
- Dockerfile
- package.json
- paths.txt
- '**/*.sh'
- if: ($CI_PIPELINE_SOURCE == 'schedule' || $CI_PIPELINE_SOURCE == 'web') && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
variables:
DOCKER_CERT_PATH: $DOCKER_TLS_CERTDIR/client
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_CERTDIR: /certs
DOCKER_TLS_VERIFY: 1
GIT_DEPTH: 1
PIP_CACHE_DIR: $CI_PROJECT_DIR/.cache/pip
tags:
- docker
cache:
key: megabytelabs
paths:
- .cache/pip
- .npm/
- venv/
before_script:
- git config pull.ff only
- git remote set-url origin "https://root:$GROUP_ACCESS_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git"
- git config user.email "$GITLAB_CI_EMAIL"
- git config user.name "$GITLAB_CI_NAME"
- git checkout "$CI_COMMIT_REF_NAME"
- git pull origin "$CI_COMMIT_REF_NAME"
- echo "$DOCKERHUB_REGISTRY_PASSWORD" | docker login -u "$DOCKERHUB_REGISTRY_USER" --password-stdin "$DOCKERHUB_REGISTRY"
- npm ci --cache .npm --ignore-scripts --prefer-offline
- npm install shellcheck
- virtualenv env
- source venv/bin/activate
script:
- set -eo pipefail
- npm run publish