mirror of
https://github.com/VinylDNS/vinyldns
synced 2025-08-31 14:25:30 +00:00
Update Release
- Remove sonatype release from sbt build - Remove instructions about release - it will be automated by GHA - Remove `sbt-release` plugin
This commit is contained in:
27
.github/ISSUE_TEMPLATE/bug_report.md
vendored
27
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
name: Bug report
|
name: Bug Report
|
||||||
about: Create a report to help us improve
|
about: Create a report to help us improve
|
||||||
title: ''
|
title: ''
|
||||||
labels: status/needs-label
|
labels: status/needs-label
|
||||||
@@ -8,24 +8,9 @@ assignees: ''
|
|||||||
---
|
---
|
||||||
|
|
||||||
**Describe the bug**
|
**Describe the bug**
|
||||||
A clear and concise description of what the bug is.
|
Please provide as much detail as you can. Here are some important details:
|
||||||
|
|
||||||
**VinylDNS Version**
|
1. A description of the bug (expected behavior vs actual behavior)
|
||||||
|
2. The VinylDNS version which contains the bug
|
||||||
**To Reproduce**
|
3. Any steps to reproduce (if we can't reproduce it, we can't fix it!)
|
||||||
Steps to reproduce the behavior:
|
4. Any other helpful information (stack trace, log messages, screenshots, etc)
|
||||||
1. Go to '...'
|
|
||||||
2. Click on '....'
|
|
||||||
3. Scroll down to '....'
|
|
||||||
4. See error
|
|
||||||
|
|
||||||
**Expected behavior**
|
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
|
||||||
**Screenshots**
|
|
||||||
If applicable, add screenshots to help explain your problem.
|
|
||||||
|
|
||||||
**Stack trace or error log output**
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context about the problem here.
|
|
||||||
|
12
.github/ISSUE_TEMPLATE/feature_request.md
vendored
12
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -7,14 +7,4 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
**Describe what you'd like to see added or improved in VinylDNS**
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
|
||||||
A clear and concise description of what you want to happen.
|
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context or screenshots about the feature request here.
|
|
||||||
|
14
.github/ISSUE_TEMPLATE/maintenance-request.md
vendored
14
.github/ISSUE_TEMPLATE/maintenance-request.md
vendored
@@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
name: Maintenance request
|
|
||||||
about: Suggest an upgrade, refactoring, code move, new library
|
|
||||||
title: ''
|
|
||||||
labels: status/needs-label
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Motivation**
|
|
||||||
What is the reason to perform the maintenance. What benefits will come about
|
|
||||||
|
|
||||||
**Scope of change**
|
|
||||||
What part(s) of the system are likely to change. For example, REST endpoints, repositories, core, functional tests, etc.
|
|
55
.github/workflows/clean.yml
vendored
55
.github/workflows/clean.yml
vendored
@@ -1,55 +0,0 @@
|
|||||||
# This file was automatically generated by sbt-github-actions using the
|
|
||||||
# githubWorkflowGenerate task. Kept it here
|
|
||||||
|
|
||||||
name: Clean
|
|
||||||
|
|
||||||
on: push
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
delete-artifacts:
|
|
||||||
name: Delete Artifacts
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
steps:
|
|
||||||
- name: Delete artifacts
|
|
||||||
run: |
|
|
||||||
# Customize those three lines with your repository and credentials:
|
|
||||||
REPO=${GITHUB_API_URL}/repos/${{ github.repository }}
|
|
||||||
|
|
||||||
# A shortcut to call GitHub API.
|
|
||||||
ghapi() { curl --silent --location --user _:$GITHUB_TOKEN "$@"; }
|
|
||||||
|
|
||||||
# A temporary file which receives HTTP response headers.
|
|
||||||
TMPFILE=/tmp/tmp.$$
|
|
||||||
|
|
||||||
# An associative array, key: artifact name, value: number of artifacts of that name.
|
|
||||||
declare -A ARTCOUNT
|
|
||||||
|
|
||||||
# Process all artifacts on this repository, loop on returned "pages".
|
|
||||||
URL=$REPO/actions/artifacts
|
|
||||||
while [[ -n "$URL" ]]; do
|
|
||||||
|
|
||||||
# Get current page, get response headers in a temporary file.
|
|
||||||
JSON=$(ghapi --dump-header $TMPFILE "$URL")
|
|
||||||
|
|
||||||
# Get URL of next page. Will be empty if we are at the last page.
|
|
||||||
URL=$(grep '^Link:' "$TMPFILE" | tr ',' '\n' | grep 'rel="next"' | head -1 | sed -e 's/.*<//' -e 's/>.*//')
|
|
||||||
rm -f $TMPFILE
|
|
||||||
|
|
||||||
# Number of artifacts on this page:
|
|
||||||
COUNT=$(( $(jq <<<$JSON -r '.artifacts | length') ))
|
|
||||||
|
|
||||||
# Loop on all artifacts on this page.
|
|
||||||
for ((i=0; $i < $COUNT; i++)); do
|
|
||||||
|
|
||||||
# Get name of artifact and count instances of this name.
|
|
||||||
name=$(jq <<<$JSON -r ".artifacts[$i].name?")
|
|
||||||
ARTCOUNT[$name]=$(( $(( ${ARTCOUNT[$name]} )) + 1))
|
|
||||||
|
|
||||||
id=$(jq <<<$JSON -r ".artifacts[$i].id?")
|
|
||||||
size=$(( $(jq <<<$JSON -r ".artifacts[$i].size_in_bytes?") ))
|
|
||||||
printf "Deleting '%s' #%d, %'d bytes\n" $name ${ARTCOUNT[$name]} $size
|
|
||||||
ghapi -X DELETE $REPO/actions/artifacts/$id
|
|
||||||
done
|
|
||||||
done
|
|
12
.github/workflows/codecov_review.yml
vendored
12
.github/workflows/codecov_review.yml
vendored
@@ -1,12 +0,0 @@
|
|||||||
name: Codecov Review
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
review:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Output Environment
|
|
||||||
run: env
|
|
64
.github/workflows/publish-site.yml
vendored
64
.github/workflows/publish-site.yml
vendored
@@ -11,75 +11,15 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
site:
|
site:
|
||||||
name: Publish Site
|
name: Publish Site
|
||||||
strategy:
|
runs-on: ubuntu-latest
|
||||||
matrix:
|
|
||||||
os: [ubuntu-latest]
|
|
||||||
scala: [2.12.10]
|
|
||||||
java: [adopt@1.11]
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout current branch (full)
|
- name: Checkout current branch (full)
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Setup Java and Scala
|
|
||||||
uses: olafurpg/setup-scala@v10
|
|
||||||
env:
|
|
||||||
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
|
|
||||||
with:
|
|
||||||
java-version: ${{ matrix.java }}
|
|
||||||
|
|
||||||
- name: Cache ivy2
|
- run: "build/publish_docs.sh";
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: ~/.ivy2/cache
|
|
||||||
key: ${{ runner.os }}-sbt-ivy-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
|
|
||||||
|
|
||||||
- name: Cache coursier (generic)
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: ~/.coursier/cache/v1
|
|
||||||
key: ${{ runner.os }}-generic-sbt-coursier-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
|
|
||||||
|
|
||||||
- name: Cache coursier (linux)
|
|
||||||
if: contains(runner.os, 'linux')
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: ~/.cache/coursier/v1
|
|
||||||
key: ${{ runner.os }}-sbt-coursier-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
|
|
||||||
|
|
||||||
- name: Cache coursier (macOS)
|
|
||||||
if: contains(runner.os, 'macos')
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: ~/Library/Caches/Coursier/v1
|
|
||||||
key: ${{ runner.os }}-sbt-coursier-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
|
|
||||||
|
|
||||||
- name: Cache coursier (windows)
|
|
||||||
if: contains(runner.os, 'windows')
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: ~/AppData/Local/Coursier/Cache/v1
|
|
||||||
key: ${{ runner.os }}-sbt-coursier-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
|
|
||||||
|
|
||||||
- name: Cache sbt
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: ~/.sbt
|
|
||||||
key: ${{ runner.os }}-sbt-cache-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
|
|
||||||
|
|
||||||
- name: Set up Ruby
|
|
||||||
uses: actions/setup-ruby@v1
|
|
||||||
with:
|
|
||||||
ruby-version: 2.6
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: >
|
|
||||||
sudo apt install libxslt-dev &&
|
|
||||||
gem install sass jekyll:4.0.0
|
|
||||||
|
|
||||||
- run: sbt ++${{ matrix.scala }} ";project docs; publishMicrosite";
|
|
||||||
env:
|
env:
|
||||||
SBT_MICROSITES_PUBLISH_TOKEN: ${{ secrets.VINYLDNS_MICROSITE }}
|
SBT_MICROSITES_PUBLISH_TOKEN: ${{ secrets.VINYLDNS_MICROSITE }}
|
||||||
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
|
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
|
||||||
|
@@ -1,23 +1,24 @@
|
|||||||
# Maintainers
|
# Maintainers
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
* [Docker Content Trust](#docker-content-trust)
|
* [Docker Content Trust](#docker-content-trust)
|
||||||
* [Sonatype Credentials](#sonatype-credentials)
|
|
||||||
* [Release Process](#release-process)
|
* [Release Process](#release-process)
|
||||||
|
|
||||||
## Docker Content Trust
|
## Docker Content Trust
|
||||||
|
|
||||||
Official VinylDNS Docker images are signed when being pushed to Docker Hub. Docs for Docker Content Trust can be found
|
Official VinylDNS Docker images are signed when being pushed to Docker Hub. Docs for Docker Content Trust can be found
|
||||||
at https://docs.docker.com/engine/security/trust/content_trust/.
|
at <https://docs.docker.com/engine/security/trust/>.
|
||||||
|
|
||||||
Content trust is enabled through the `DOCKER_CONTENT_TRUST` environment variable, which must be set to 1. It is recommended that
|
Content trust is enabled through the `DOCKER_CONTENT_TRUST` environment variable, which must be set to `1`. It is
|
||||||
in your `~/.bashrc`, you have `export DOCKER_CONTENT_TRUST=1` by default, and if you ever want to turn it off for a
|
recommended that in your `~/.bashrc`, you have `export DOCKER_CONTENT_TRUST=1` by default, and if you ever want to turn
|
||||||
Docker command, add the `--disable-content-trust` flag to the command, e.g. `docker pull --disable-content-trust ...`.
|
it off for a Docker command, add the `--disable-content-trust` flag to the command,
|
||||||
|
e.g. `docker pull --disable-content-trust ...`.
|
||||||
|
|
||||||
There are multiple Docker repositories on Docker Hub under
|
There are multiple Docker repositories on Docker Hub under
|
||||||
the [vinyldns organization](https://hub.docker.com/u/vinyldns/dashboard/). Namely:
|
the [vinyldns organization](https://hub.docker.com/u/vinyldns/dashboard/). Namely:
|
||||||
|
|
||||||
* vinyldns/api: images for vinyldns core api engine
|
* vinyldns/api: images for vinyldns core api engine
|
||||||
* vinyldns/portal: images for vinyldns web client
|
* vinyldns/portal: images for vinyldns web client
|
||||||
|
|
||||||
The offline root key and repository keys are managed by the core maintainer team. The keys managed are:
|
The offline root key and repository keys are managed by the core maintainer team. The keys managed are:
|
||||||
@@ -27,61 +28,18 @@ The offline root key and repository keys are managed by the core maintainer team
|
|||||||
* portal key: used to sign tagged images in vinyldns/portal
|
* portal key: used to sign tagged images in vinyldns/portal
|
||||||
|
|
||||||
These keys are named in a <hash>.key format, e.g. 5526ecd15bd413e08718e66c440d17a28968d5cd2922b59a17510da802ca6572.key,
|
These keys are named in a <hash>.key format, e.g. 5526ecd15bd413e08718e66c440d17a28968d5cd2922b59a17510da802ca6572.key,
|
||||||
do not change the names of the keys.
|
do not change the names of the keys.
|
||||||
|
|
||||||
Docker expects these keys to be saved in `~/.docker/trust/private`. Each key is encrypted with a passphrase, that you
|
Docker expects these keys to be saved in `~/.docker/trust/private`. Each key is encrypted with a passphrase, that you
|
||||||
must have available when pushing an image.
|
must have available when pushing an image.
|
||||||
|
|
||||||
|
|
||||||
## Sonatype Credentials
|
|
||||||
|
|
||||||
The core module is pushed to oss.sonatype.org under io.vinyldns
|
|
||||||
|
|
||||||
To be able to push to sonatype you will need the pgp key used to sign the module. We use a [blackbox](https://github.com/StackExchange/blackbox/)
|
|
||||||
repo to share this key and its corresponding passphrase. Follow these steps to set it up properly on your local
|
|
||||||
|
|
||||||
1. Ensure you have a gpg key setup on your machine by running `gpg -K`, if you do not then run `gpg --gen-key` to create one,
|
|
||||||
note you will have to generate a strong passphrase and save it in some password manager
|
|
||||||
1. Make sure you have blackbox, on mac this would be `brew install blackbox`
|
|
||||||
1. Clone our blackbox repo, get the git url from another maintainer
|
|
||||||
1. Run `blackbox_addadmin <the email associated with your gpg key>`
|
|
||||||
1. Commit your changes to the blackbox repo and push to master
|
|
||||||
1. Have an existing admin pull the repo and run `gpg --keyring keyrings/live/pubring.kbx --export | gpg --import`, and `blackbox_update_all_files`
|
|
||||||
1. Have the existing admin commit and push those changes to master
|
|
||||||
1. Back to you - pull the changes, and now you should be able to read those files
|
|
||||||
1. Run `blackbox_edit_start vinyldns-sonatype-key.asc.gpg` to temporarily decrypt the sonatype signing key
|
|
||||||
1. Run `gpg --import vinyldns-sonatype-key.asc` to import the sonatype signing key to your keyring
|
|
||||||
1. Run `blackbox_edit_end vinyldns-sonatype-key.asc.gpg` to re-encrypt the sonatype signing key
|
|
||||||
1. Run `blackbox_cat vinyldns-sonatype.txt.gpg` to view the passphrase for that key - you will need this passphrase handy when releasing
|
|
||||||
1. Create a file `~/.sbt/1.0/vinyldns-gpg-credentials` with the content
|
|
||||||
|
|
||||||
```
|
|
||||||
realm=GnuPG Key ID
|
|
||||||
host=gpg
|
|
||||||
user=vinyldns@gmail.com
|
|
||||||
password=ignored-must-use-pinentry
|
|
||||||
```
|
|
||||||
|
|
||||||
1. Add credential configuration to global sbt setting in `~/.sbt/1.0/credential.sbt` with the content
|
|
||||||
|
|
||||||
```
|
|
||||||
credentials += Credentials(Path.userHome / ".sbt" / "1.0" / "vinyldns-gpg-credentials")
|
|
||||||
```
|
|
||||||
|
|
||||||
## Release Process
|
## Release Process
|
||||||
|
|
||||||
We are using sbt-release to run our release steps and auto-bump the version in `version.sbt`. The `build/release.sh`
|
The release process is automated by GitHub Actions.
|
||||||
script will first run functional tests, then kick off `sbt release`, which also runs unit and integration tests before
|
|
||||||
running the release
|
|
||||||
|
|
||||||
1. Follow [Docker Content Trust](#docker-content-trust) to setup a notary delegation for yourself
|
To start, create a release in GitHub with the same tag as the version found in `version.sbt`.
|
||||||
1. Follow [Sonatype Credentials](#sonatype-credentials) to setup the sonatype pgp signing key on your local
|
|
||||||
1. Make sure you're logged in to Docker with `docker login`
|
The release will perform the following actions:
|
||||||
1. Run `build/release.sh`
|
|
||||||
1. You will be asked to confirm the version which originally comes from `version.sbt`. _NOTE: if the version ends with
|
1. Published Docker images to `hub.docker.com`
|
||||||
`SNAPSHOT`, then the docker latest tag won't be applied and the core module will only be published to the sonatype
|
2. Attached artifacts created by the build to the GitHub release
|
||||||
staging repo._
|
|
||||||
1. When it comes to the sonatype stage, you will need the passphrase handy for the signing key, [Sonatype Credentials](#sonatype-credentials)
|
|
||||||
1. Assuming things were successful, make a pr since sbt release auto-bumped `version.sbt` and made a commit for you
|
|
||||||
1. Run `./build/docker-release.sh --branch [TAG CREATED FROM PREVIOUS STEP, e.g. v0.9.3] --clean --push`
|
|
||||||
1. You will need to have your keys ready so you can sign each image as it is published.
|
|
||||||
|
63
build.sbt
63
build.sbt
@@ -3,7 +3,6 @@ import Dependencies._
|
|||||||
import Resolvers._
|
import Resolvers._
|
||||||
import microsites._
|
import microsites._
|
||||||
import org.scalafmt.sbt.ScalafmtPlugin._
|
import org.scalafmt.sbt.ScalafmtPlugin._
|
||||||
import sbtrelease.ReleasePlugin.autoImport.ReleaseTransformations._
|
|
||||||
import scoverage.ScoverageKeys.{coverageFailOnMinimum, coverageMinimum}
|
import scoverage.ScoverageKeys.{coverageFailOnMinimum, coverageMinimum}
|
||||||
|
|
||||||
import scala.util.Try
|
import scala.util.Try
|
||||||
@@ -165,8 +164,7 @@ lazy val corePublishSettings = Seq(
|
|||||||
url("https://github.com/vinyldns/vinyldns"),
|
url("https://github.com/vinyldns/vinyldns"),
|
||||||
"scm:git@github.com:vinyldns/vinyldns.git"
|
"scm:git@github.com:vinyldns/vinyldns.git"
|
||||||
)
|
)
|
||||||
),
|
)
|
||||||
sonatypeProfileName := "io.vinyldns"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
lazy val core = (project in file("modules/core"))
|
lazy val core = (project in file("modules/core"))
|
||||||
@@ -317,70 +315,11 @@ lazy val docs = (project in file("modules/docs"))
|
|||||||
.enablePlugins(MicrositesPlugin, MdocPlugin)
|
.enablePlugins(MicrositesPlugin, MdocPlugin)
|
||||||
.settings(docSettings)
|
.settings(docSettings)
|
||||||
|
|
||||||
// release stages
|
|
||||||
|
|
||||||
lazy val setSonatypeReleaseSettings = ReleaseStep(action = oldState => {
|
|
||||||
// sonatype publish target, and sonatype release steps, are different if version is SNAPSHOT
|
|
||||||
val extracted = Project.extract(oldState)
|
|
||||||
val v = extracted.get(Keys.version)
|
|
||||||
val snap = v.endsWith("SNAPSHOT")
|
|
||||||
if (!snap) {
|
|
||||||
val publishToSettings =
|
|
||||||
Some("releases".at("https://oss.sonatype.org/" + "service/local/staging/deploy/maven2"))
|
|
||||||
val newState =
|
|
||||||
extracted.appendWithSession(Seq(publishTo in core := publishToSettings), oldState)
|
|
||||||
|
|
||||||
// create sonatypeReleaseCommand with releaseSonatype step
|
|
||||||
val sonatypeCommand = Command.command("sonatypeReleaseCommand") {
|
|
||||||
"project core" ::
|
|
||||||
"publish" ::
|
|
||||||
"sonatypeRelease" ::
|
|
||||||
_
|
|
||||||
}
|
|
||||||
|
|
||||||
newState.copy(definedCommands = newState.definedCommands :+ sonatypeCommand)
|
|
||||||
} else {
|
|
||||||
val publishToSettings =
|
|
||||||
Some("snapshots".at("https://oss.sonatype.org/" + "content/repositories/snapshots"))
|
|
||||||
val newState =
|
|
||||||
extracted.appendWithSession(Seq(publishTo in core := publishToSettings), oldState)
|
|
||||||
|
|
||||||
// create sonatypeReleaseCommand without releaseSonatype step
|
|
||||||
val sonatypeCommand = Command.command("sonatypeReleaseCommand") {
|
|
||||||
"project core" ::
|
|
||||||
"publish" ::
|
|
||||||
_
|
|
||||||
}
|
|
||||||
|
|
||||||
newState.copy(definedCommands = newState.definedCommands :+ sonatypeCommand)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
lazy val sonatypePublishStage = Seq[ReleaseStep](
|
|
||||||
releaseStepCommandAndRemaining(";sonatypeReleaseCommand")
|
|
||||||
)
|
|
||||||
|
|
||||||
lazy val initReleaseStage = Seq[ReleaseStep](
|
|
||||||
inquireVersions, // have a developer confirm versions
|
|
||||||
setReleaseVersion,
|
|
||||||
setSonatypeReleaseSettings
|
|
||||||
)
|
|
||||||
|
|
||||||
lazy val finalReleaseStage = Seq[ReleaseStep](
|
|
||||||
releaseStepCommand("project root"), // use version.sbt file from root
|
|
||||||
commitReleaseVersion,
|
|
||||||
setNextVersion,
|
|
||||||
commitNextVersion
|
|
||||||
)
|
|
||||||
|
|
||||||
def getPropertyFlagOrDefault(name: String, value: Boolean): Boolean =
|
def getPropertyFlagOrDefault(name: String, value: Boolean): Boolean =
|
||||||
sys.props.get(name).flatMap(propValue => Try(propValue.toBoolean).toOption).getOrElse(value)
|
sys.props.get(name).flatMap(propValue => Try(propValue.toBoolean).toOption).getOrElse(value)
|
||||||
|
|
||||||
releaseProcess :=
|
|
||||||
initReleaseStage ++
|
|
||||||
sonatypePublishStage ++
|
|
||||||
finalReleaseStage
|
|
||||||
|
|
||||||
// Let's do things in parallel!
|
// Let's do things in parallel!
|
||||||
addCommandAlias(
|
addCommandAlias(
|
||||||
"validate",
|
"validate",
|
||||||
|
@@ -4,11 +4,10 @@ This folder contains scripts for building VinylDNS and it's related artifacts.
|
|||||||
|
|
||||||
| Path |Description |
|
| Path |Description |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
|`assemble_api_jar.sh` | Builds the VinylDNS API jar file. You can find the resulting `jar` file in `assembly/`.|
|
| `assemble_api_jar.sh` | Builds the VinylDNS API jar file. You can find the resulting `jar` file in `assembly/`.|
|
||||||
|`deep_clean.sh` | Removes all of the build artifacts and all `target/` directories recursively.|
|
| `deep_clean.sh` | Removes all of the build artifacts and all `target/` directories recursively.|
|
||||||
| `func-test-api.sh` | Runs the functional tests for the API|
|
| `func-test-api.sh` | Runs the functional tests for the API|
|
||||||
| `func-test-portal.sh` | Runs the functional tests for the Portal|
|
| `func-test-portal.sh` | Runs the functional tests for the Portal|
|
||||||
| `prepare_release.sh` | Runs all of the tests in preparation for a release|
|
| `publish_docs.sh` | Publishes the documentation site|
|
||||||
|
| `run_all_tests.sh` | Runs all of the tests: unit, integration, and functional|
|
||||||
| `verify.sh` | Runs all of the unit and integration tests|
|
| `verify.sh` | Runs all of the unit and integration tests|
|
||||||
|
|
||||||
|
|
||||||
|
2
build/release.sh → build/publish_docs.sh
Executable file → Normal file
2
build/release.sh → build/publish_docs.sh
Executable file → Normal file
@@ -2,4 +2,4 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
DIR=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
|
DIR=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
|
||||||
|
|
||||||
docker run -it --rm -e RUN_SERVICES=none -v "${DIR}/../:/build" vinyldns/build:base-build /bin/bash
|
docker run -it --rm -e RUN_SERVICES=none -v "${DIR}/../:/build" vinyldns/build:base-build-docs /bin/bash -c "sbt ';project docs; publishMicrosite'"
|
@@ -12,12 +12,8 @@ addSbtPlugin("org.wartremover" % "sbt-wartremover" % "2.4.10")
|
|||||||
|
|
||||||
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.25")
|
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.25")
|
||||||
|
|
||||||
addSbtPlugin("com.tapad" % "sbt-docker-compose" % "1.0.34")
|
|
||||||
|
|
||||||
addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.6.3")
|
addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.6.3")
|
||||||
|
|
||||||
addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.8")
|
|
||||||
|
|
||||||
addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.5.0")
|
addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.5.0")
|
||||||
|
|
||||||
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.4")
|
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.4")
|
||||||
@@ -28,8 +24,4 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-license-report" % "1.2.0")
|
|||||||
|
|
||||||
addSbtPlugin("com.47deg" % "sbt-microsites" % "1.3.4")
|
addSbtPlugin("com.47deg" % "sbt-microsites" % "1.3.4")
|
||||||
|
|
||||||
addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "2.3")
|
|
||||||
|
|
||||||
addSbtPlugin("io.crashbox" % "sbt-gpg" % "0.2.0")
|
|
||||||
|
|
||||||
addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.2.24" )
|
addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.2.24" )
|
||||||
|
Reference in New Issue
Block a user