Skip to content

Convert drone configuration to 1.x format #6845

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 14, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
336 changes: 209 additions & 127 deletions .drone.yml
Original file line number Diff line number Diff line change
@@ -1,131 +1,213 @@
---
kind: pipeline
name: default

platform:
os: linux
arch: amd64

clone:
git:
image: plugins/git
# We clone submodules ourselves
recursive: false

pipeline:
# We add a custom clone step to workaround a bug with GitHub (see #3415)
clone:
image: plugins/git
commands:
# if build is PR rebase on top of target branch
- if [ "$DRONE_BUILD_EVENT" = "pull_request" ]; then
git config user.email "dotty.bot@epfl.ch";
git config user.name "Dotty CI";
git pull "$DRONE_REMOTE_URL" "$DRONE_BRANCH";
fi

# TESTS:
# We run tests in parallel. Tests run in a copy of the working directory to avoid conflict
test:
group: test
image: lampepfl/dotty:2019-04-22
commands:
- cp -R . /tmp/1/ && cd /tmp/1/
- ./project/scripts/sbt ";compile ;test"
- ./project/scripts/cmdTests

test_bootstrapped:
group: test
image: lampepfl/dotty:2019-04-22
commands:
- cp -R . /tmp/2/ && cd /tmp/2/
- ./project/scripts/sbt ";dotty-bootstrapped/compile ;dotty-bootstrapped/test; dotty-semanticdb/compile; dotty-semanticdb/test:compile;sjsSandbox/run;sjsSandbox/test;sjsJUnitTests/test"
- ./project/scripts/bootstrapCmdTests

community_build:
group: test
image: lampepfl/dotty:2019-04-22
commands:
- cp -R . /tmp/3/ && cd /tmp/3/
- git submodule update --init --recursive --jobs 7
- ./project/scripts/sbt community-build/test

test_sbt:
group: test
image: lampepfl/dotty:2019-04-22
commands:
- cp -R . /tmp/4/ && cd /tmp/4/
- ./project/scripts/sbt sbt-dotty/scripted
when:
# sbt scripted tests are slow and only run on nightly or deployment
event: [ tag, deployment ]

test_java11:
group: test
image: lampepfl/dotty:2019-04-22
commands:
- export PATH="/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH"
- cp -R . /tmp/6/ && cd /tmp/6/
- ./project/scripts/sbt ";compile ;test"
when:
event: [ push, tag, deployment ]

# DOCUMENTATION:
documentation:
image: lampepfl/dotty:2019-04-22
commands:
- ./project/scripts/genDocs
secrets: [ bot_token ]
when:
event: push
# We only generate the documentation for the master branch
branch: master

# PUBLISHING:
# Publishing expect NIGHTLYBUILD or RELEASEBUILD to be set. See dottyVersion in Build.scala
publish_nightly:
image: lampepfl/dotty:2019-04-22
environment:
- NIGHTLYBUILD=yes
commands:
- ./project/scripts/sbtPublish ";dotty-bootstrapped/publishSigned ;sonatypeRelease"
secrets: [ sonatype_user, sonatype_pw, pgp_pw, pgp_secret ]
when:
event: deployment
environment: nightly

publish_release:
image: lampepfl/dotty:2019-04-22
environment:
- RELEASEBUILD=yes
commands:
# Produces dotty-version.{tar.gz, zip}
- ./project/scripts/sbt dist-bootstrapped/packArchive
- ./project/scripts/sbtPublish ";dotty-bootstrapped/publishSigned ;sonatypeRelease"
secrets: [ sonatype_user, sonatype_pw, pgp_pw, pgp_secret ]
when:
event: tag

# Publish dotty-version.{tar.gz, zip} to GitHub Release
github_release:
image: plugins/github-release
secrets: [ github_token ]
disable: true

steps:
- name: git
pull: default
image: plugins/git

- name: clone
pull: default
image: plugins/git
depends_on: [ git ]
commands:
- if [ "$DRONE_BUILD_EVENT" = "pull_request" ]; then
git config user.email "dotty.bot@epfl.ch";
git config user.name "Dotty CI";
git pull "$DRONE_REMOTE_URL" "$DRONE_BRANCH";
fi

- name: test
pull: default
image: lampepfl/dotty:2019-04-22
depends_on: [ clone ]
commands:
- cp -R . /tmp/1/ && cd /tmp/1/
- ./project/scripts/sbt ";compile ;test"
- ./project/scripts/cmdTests

- name: test_bootstrapped
pull: default
image: lampepfl/dotty:2019-04-22
depends_on: [ clone ]
commands:
- cp -R . /tmp/2/ && cd /tmp/2/
- ./project/scripts/sbt ";dotty-bootstrapped/compile ;dotty-bootstrapped/test; dotty-semanticdb/compile; dotty-semanticdb/test:compile;sjsSandbox/run;sjsSandbox/test;sjsJUnitTests/test"
- ./project/scripts/bootstrapCmdTests

- name: community_build
pull: default
image: lampepfl/dotty:2019-04-22
depends_on: [ clone ]
commands:
- cp -R . /tmp/3/ && cd /tmp/3/
- git submodule update --init --recursive --jobs 7
- ./project/scripts/sbt community-build/test

- name: test_sbt
pull: default
image: lampepfl/dotty:2019-04-22
depends_on: [ clone ]
commands:
- cp -R . /tmp/4/ && cd /tmp/4/
- ./project/scripts/sbt sbt-dotty/scripted
when:
event:
- tag
- deployment

- name: test_java11
pull: default
image: lampepfl/dotty:2019-04-22
depends_on: [ clone ]
commands:
- export PATH="/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH"
- cp -R . /tmp/6/ && cd /tmp/6/
- ./project/scripts/sbt ";compile ;test"
when:
event:
- push
- tag
- deployment

- name: documentation
pull: default
image: lampepfl/dotty:2019-04-22
depends_on:
- test
- test_bootstrapped
- community_build
- test_java11
commands:
- ./project/scripts/genDocs
environment:
BOT_TOKEN:
from_secret: bot_token
when:
branch:
- master
event:
- push

- name: publish_nightly
pull: default
image: lampepfl/dotty:2019-04-22
depends_on:
- test
- test_bootstrapped
- community_build
- test_sbt
- test_java11
commands:
- ./project/scripts/sbtPublish ";dotty-bootstrapped/publishSigned ;sonatypeRelease"
environment:
NIGHTLYBUILD: yes
PGP_PW:
from_secret: pgp_pw
PGP_SECRET:
from_secret: pgp_secret
SONATYPE_PW:
from_secret: sonatype_pw
SONATYPE_USER:
from_secret: sonatype_user
when:
event:
- deployment
target:
- nightly

- name: publish_release
pull: default
image: lampepfl/dotty:2019-04-22
depends_on:
- test
- test_bootstrapped
- community_build
- test_sbt
- test_java11
commands:
- ./project/scripts/sbt dist-bootstrapped/packArchive
- ./project/scripts/sbtPublish ";dotty-bootstrapped/publishSigned ;sonatypeRelease"
environment:
PGP_PW:
from_secret: pgp_pw
PGP_SECRET:
from_secret: pgp_secret
RELEASEBUILD: yes
SONATYPE_PW:
from_secret: sonatype_pw
SONATYPE_USER:
from_secret: sonatype_user
when:
event:
- tag

- name: github_release
pull: default
image: plugins/github-release
depends_on: [ publish_release ]
settings:
checksum:
- sha256
draft: true
files:
- dist-bootstrapped/target/dotty-*
checksum:
- sha256
when:
event: tag

publish_sbt_release:
image: lampepfl/dotty:2019-04-22
environment:
- RELEASEBUILD=yes
commands:
- ./project/scripts/sbtPublish ";sbt-dotty/publishSigned ;sonatypeRelease"
secrets: [ sonatype_user, sonatype_pw, pgp_pw, pgp_secret ]
when:
event: deployment
environment: sbt_release

# NOTIFICATIONS:
slack:
image: plugins/slack
- dist-bootstrapped/target/dotty-*
environment:
GITHUB_TOKEN:
from_secret: github_token
when:
event:
- tag

- name: publish_sbt_release
pull: default
image: lampepfl/dotty:2019-04-22
depends_on:
- test
- test_bootstrapped
- community_build
- test_sbt
- test_java11
commands:
- ./project/scripts/sbtPublish ";sbt-dotty/publishSigned ;sonatypeRelease"
environment:
PGP_PW:
from_secret: pgp_pw
PGP_SECRET:
from_secret: pgp_secret
RELEASEBUILD: yes
SONATYPE_PW:
from_secret: sonatype_pw
SONATYPE_USER:
from_secret: sonatype_user
when:
event:
- deployment
target:
- sbt_release

- name: slack
pull: default
image: plugins/slack
settings:
channel: dotty
secrets: [ slack_webhook ]
when:
status: [ failure ]
event: [ push, tag, deployment ]
environment:
SLACK_WEBHOOK:
from_secret: slack_webhook
when:
event:
- push
- tag
- deployment
status:
- failure

...