.apk-add: &apk-add - "apk add go-task diffutils" .disable-hainish: &disable-hainish - "rm -f .env.development" .cache-ruby: &cache-ruby - paths: - "vendor/ruby" .cache-node: &cache-node - paths: - "node_modules" .cache-task: &cache-task - paths: - ".task" image: "registry.0xacab.org/sutty/sutty:3.17.3-3.1.4-rails" variables: RAILS_ENV: "production" LC_ALL: "C.UTF-8" HAINISH: "" cache: assets: stage: "deploy" only: - "rails" cache: - *cache-ruby - *cache-node - *cache-task before_script: - "git config --global user.email \"${GIT_USER_EMAIL:-$GITLAB_USER_EMAIL}\"" - "git config --global user.name \"${GIT_USER_NAME:-$GITLAB_USER_NAME}\"" - "git remote set-url --push origin \"https://${GITLAB_USERNAME}:${GITLAB_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git\"" - "apk add brotli" - *apk-add - *disable-hainish script: - "go-task assets" after_script: - "git add public && git commit -m \"ci: assets [skip ci]\"" - "git push -o ci.skip" gem-audit: stage: "test" only: - "schedules" cache: - *cache-ruby before_script: - "gem install bundler-audit" - *apk-add - *disable-hainish script: - "go-task gem-audit" node-audit: stage: "test" only: - "schedules" cache: - *cache-node before_script: - *apk-add - *disable-hainish script: - "apk add go-task" - "go-task node-audit" brakeman: stage: "test" cache: - *cache-ruby rules: - if: "$CI_PIPELINE_SOURCE == 'merge_request_event'" before_script: - *apk-add - *disable-hainish script: - "go-task bundle -- exec brakeman" rubocop: stage: "test" cache: - *cache-ruby rules: - if: "$CI_PIPELINE_SOURCE == 'merge_request_event'" before_script: - *apk-add - *disable-hainish - env - ls -hal vendor - ls -hal vendor - ls -hal vendor/ruby script: - "./bin/modified_files | ./bin/with_extension rb | xargs -r go-task bundle -- exec rubocop" haml: stage: "test" cache: - *cache-ruby rules: - if: "$CI_PIPELINE_SOURCE == 'merge_request_event'" before_script: - *apk-add - *disable-hainish script: - "./bin/modified_files | ./bin/with_extension haml | xargs -r go-task bundle -- exec haml-lint"