From 93d2a9e2494b2244ed76a0dbd45c694703878a72 Mon Sep 17 00:00:00 2001 From: Carlos Quiroz Date: Thu, 11 Mar 2021 09:47:38 -0300 Subject: [PATCH] Setup sbt-ci-release Signed-off-by: Carlos Quiroz --- .github/workflows/ci.yml | 2 +- .github/workflows/release.yml | 24 ++++++++++++++++++++++ .travis.yml | 37 ---------------------------------- build.sbt | 10 --------- project/plugins.sbt | 12 +++++------ travis/secrets.tar.enc | Bin 20496 -> 0 bytes 6 files changed, 30 insertions(+), 55 deletions(-) create mode 100644 .github/workflows/release.yml delete mode 100644 .travis.yml delete mode 100644 travis/secrets.tar.enc diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 35b41686..0d7720a0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: olafurpg/setup-scala@v10 + - uses: olafurpg/setup-scala@v12 with: java-version: "adopt@1.11" - uses: coursier/cache-action@v5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..eb21e07b --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,24 @@ +name: Release +on: + push: + branches: [master] + tags: ["*"] +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: olafurpg/setup-scala@v12 + - uses: olafurpg/setup-gpg@v3 + - uses: coursier/cache-action@v5 + - name: Publish + run: sbt clean ci-release + env: + PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} + PGP_SECRET: ${{ secrets.PGP_SECRET }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + CI_RELEASE: "; scalajs-bundler-linker/publishSigned; sbt-scalajs-bundler/publishSigned; sbt-web-scalajs-bundler/publishSigned" + CI_SNAPSHOT_RELEASE: "; scalajs-bundler-linker/publish; sbt-scalajs-bundler/publish; sbt-web-scalajs-bundler/publish" + + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 430e838d..00000000 --- a/.travis.yml +++ /dev/null @@ -1,37 +0,0 @@ -language: scala -sudo: required -env: - global: - - TRAVIS_NODE_VERSION="8" - - secure: YXQWJjmqrib8ePEp/Ds7US9P5+medDAsKc8X/zHcwoNIGIpJF6QyBqkvLJNq5IkM05K0AF8AGmz2BlS1XECIYkTdQVS0dITrEFuiaiiUzURNlhJGjtw10NAS99+dW3M/T4MKWvTgWcIsgEx0ttsTlMedWpm7aFS4Zn9i3sx2iUSHmck74JTHUcI/1DltgwTu73euxgNBPSl6ICDKEcwRgjCor55/HLbhiHBS6nx/OVPiazFrsnOG8psfn8NZUJMYiNK4FL69BxHHyvs1mQx0U24Yxbg/r2U+QrPihq5Xk9MglDz13wjxu0WrVQdFZzLRxmnTXpRr/Kx9l4xN4IMvg0hNeJ0tBCq2g3i1XXeIkf0LM0ZoImV7pB4JWUYywUyGwz5/NLiJH82dVpXO3YtHl5kF22+Vtd+IOSWmVkx4bW+UTW3vLXDyxfULscNLGb3yeuTcW10NLAlXSakNvukyYoA3K7BGoN4J3v36CzKcO3wD1hzSChhd3ivngtuKF+rdKiJTjzVd/hnwTF7xZ7CNpGSDoggT/NQ4oHIWTdWBcMDI61H76eMOittphBOOfYEcXYPwBrDSMHDnPKyoNdWc3VItCAYp5dqZxtNxkclIEzGHjOEB03II5zDhF+uv4YPxaf2IYhhcLsdE5JHltpa9CVnTciJdrJ6nKx4vNBqzRhM= - - secure: CGqZrHZPgWOVZcjCL4iDJRlYPeC46Ko53ZufP4UtKpC7bdXgzqsbLVinI0EYwjZ0MZNUFQhOSKCK+2tNcnVA0EkhzMLSBE2sHXQ3fwO3EsoSGLCEOKh2LSrxb2S2AXHJer2/EsoJMCVyaYaQdWKWuK+CGLeTDJtP4l5Zeo1pF9kZOKDnaHHVmutnrbzcl39vsLOxFebaY5RP41irPKFV43bfUqfs5eoUslwt17QFLrXHQP7wlG9wzDwtqC2oonHO0GDWFs5NM2tju/J4FC31wFFslIEQ8Pabt8D4qGj+3rXt4KNiMM3v7G0kC1IYBEChVSrBcPMOljDWvMYYbqcAeIfLu/RsWGUX+e/e3FD6bbhoNIAAelYWqukPkvIFy4Y0iYjxFV6YZngiyuAgh+3+vwvhyQKh71hgVRxoVWFp3SXawj3mSnsDI6m4Dj9lO0lNG+eAEmFQfrmN2GC7OKhyT0/clazaYsdcKW2XsQN1qglWevepRtiOWO2vP6zBT8HHN8DV7YPLsZel3RMoqtkks5GWA0khu2yaWsCTz9i7RdPoFjdJdDJSgQG1Ta/1Dc6JuvgMOEJ3CQsZAMGZV9URu7m0m8iuLLOW5vglYQuIw5kjTgCF3r50QV5QgamLlrOkOUGd2DRv7jjFFBNpK9k0ndNCt7NEcKgbD8O8ne0UAp4= - - secure: GRw7LuKilmu8IwGQo4G9UQUyG1IbVVewqlmEGxzdBj0hFwuPIc/hEfSS0g3CTA87iA+d960wsxwBpssu/e5sHk9RV5378W9MavGaTva8ifGNiMLn+lCEtA9sMr+eB+fTpdGh+PGqR9EDeeI6lMuuKGEUUDaxWAR198dP30DnfoZ4AHAV6QSyMHd2yPQa3lP+MPgZ8RnUok5ucEXSpkcwDpeptnl7WVirh6rIw9S6bJdN8eDKbapz+fXev3QECI8cJtU92AQAMnoQ9nkD4eI48yLg+EqXhTdZwls5lHLa1RW4XGhtt+26zOi/4/Mw/FoV5Nx6KszHO1nUq2AXCfXHINmZar9KmZt9ZCPL6Ap0/LXz6USrnz/EARHt08VMWXk4TXZu90ZYFglW/Tle1KEX6pV4hKvdrnDvqKlQvMBgm6fJvCIzbUtzeks5mhV1TWhm/l4UG0mBi4EqAjZsoM8QZ+cXMeiA+JQxLyE/a6Mf3ejWeqYsBfaOveRNiJID5tc+H2a1jwaDJq1lh78WYWqR8uq9husZas+VNVMwFAyt3w3ew/d3Z0kcmzOaujZC3OFmI20qd3+Aep9o32Qn1rCmRXmfD5IQFDx1OoR6bjfwDNoa2YDE/a9fH8MfFWqDam6C5PDOL0EPTe/PJUUY4Kk+6/x2Tm5bhQEXXt0RxZ23FBI= -jdk: - - openjdk11 -before_install: -- nvm install 12 -- nvm use 12 -- node --version -- curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 0.24.6 -- export PATH=$HOME/.yarn/bin:$PATH -- if [ $TRAVIS_PULL_REQUEST = 'false' ]; then - openssl aes-256-cbc -K $encrypted_d49db7ad02d6_key -iv $encrypted_d49db7ad02d6_iv -in travis/secrets.tar.enc -out travis/secrets.tar -d; - tar xv -C travis -f travis/secrets.tar; - fi -script: -- if [ $TRAVIS_PULL_REQUEST = 'false' ] && [ -n "$TRAVIS_TAG" ]; then - sbt -no-colors ";compile;doc"; - fi -after_success: -- if [ $TRAVIS_PULL_REQUEST = 'false' ] && [ -n "$TRAVIS_TAG" ]; then - sbt "; scalajs-bundler-linker/publishSigned; sbt-scalajs-bundler/publishSigned; sbt-web-scalajs-bundler/publishSigned; sonatypeReleaseAll"; - fi -cache: - yarn: true - directories: - - "$HOME/.ivy2/cache" - - "$HOME/.sbt" -before_cache: -# Cleanup the cached directories to avoid unnecessary cache updates -- find $HOME/.ivy2/cache -name "ivydata-*.properties" -print -delete -- find $HOME/.sbt -name "*.lock" -print -delete diff --git a/build.sbt b/build.sbt index e08b1945..8c46c871 100644 --- a/build.sbt +++ b/build.sbt @@ -90,15 +90,6 @@ val `scalajs-bundler` = .aggregate(`sbt-scalajs-bundler`, `sbt-web-scalajs-bundler`) inThisBuild(List( - pgpPublicRing := file("./local.pubring.asc"), - pgpSecretRing := file("./local.secring.asc"), - pgpPassphrase := sys.env.get("PGP_PASS").map(_.toArray), - credentials ++= ( - for { - username <- sys.env.get("SONATYPE_USER") - password <- sys.env.get("SONATYPE_PASSWORD") - } yield Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", username, password) - ).toList, scalacOptions ++= Seq( "-feature", "-deprecation", @@ -124,7 +115,6 @@ inThisBuild(List( )) lazy val commonSettings = List( - publishTo := sonatypePublishTo.value, scriptedLaunchOpts ++= Seq( "-Dplugin.version=" + version.value, s"-Dscalajs.version=$scalaJSVersion", diff --git a/project/plugins.sbt b/project/plugins.sbt index 73e69816..aa94ac99 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,9 +1,7 @@ -addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "2.3") -addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.1.2") -addSbtPlugin("com.dwijnand" % "sbt-dynver" % "2.1.0") -addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "1.4.1") -addSbtPlugin("com.novocode" % "sbt-ornate" % "0.6") -addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.3") -addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.10.0") +addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "1.4.1") +addSbtPlugin("com.novocode" % "sbt-ornate" % "0.6") +addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.3") +addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.10.0") +addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.6") ivyLoggingLevel in ThisBuild := UpdateLogging.Quiet diff --git a/travis/secrets.tar.enc b/travis/secrets.tar.enc deleted file mode 100644 index 4480cc9dcc0834cfe29f881664df35723ad05167..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20496 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 XSRppFKKfvEzr(^TSm?fN#8iGMii9`J