release #95
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: release | |
# Publishes twitter/util, twitter/scrooge, twitter/finagle, twitter/twitter-server, | |
# and twitter/finatra. | |
# | |
# Expects a repository dispatch event: https://developer.github.com/v3/repos/#create-a-repository-dispatch-event | |
# in the form of JSON data POST to /repos/twitter/dodo/dispatches: | |
# | |
# { | |
# "event_type": "release", | |
# "client_payload": { | |
# "phab_id": "D12345", | |
# "version": "17.12.0", | |
# "scrooge_sbt_plugin": true, | |
# "scrooge_maven_plugin": true, | |
# "dry_run": true | |
# } | |
# } | |
env: | |
JAVA_OPTS: "-Dsbt.log.noformat=true" | |
PGP_KEY: ${{ secrets.PGP_KEY }} | |
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | |
PGP_SECRET: ${{ secrets.PGP_SECRET }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
BINTRAY_USER: ${{ secrets.BINTRAY_USER }} | |
BINTRAY_PASS: ${{ secrets.BINTRAY_PASS }} | |
API_USER: ${{ secrets.API_USER }} | |
API_KEY: ${{ secrets.API_KEY }} | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} | |
defaults: | |
run: | |
shell: bash | |
on: | |
repository_dispatch: | |
types: [release] | |
jobs: | |
release: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: dump/context | |
env: | |
GITHUB_CONTEXT: ${{ toJson(github) }} | |
run: echo "$GITHUB_CONTEXT" | |
- uses: actions/checkout@v2.3.4 | |
- uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- uses: olafurpg/setup-scala@v10 | |
with: | |
java-version: adopt@1.8 | |
- uses: olafurpg/setup-gpg@v3 | |
- name: setup/gpg | |
run: ${{ github.workspace }}/bin/gpg-init | |
- name: setup/maven | |
uses: whelk-io/maven-settings-xml-action@v14 | |
with: | |
servers: '[{ "id": "sonatype-nexus-staging", "username": "${{ secrets.SONATYPE_USERNAME }}", "password": "${{ secrets.SONATYPE_PASSWORD }}" }]' | |
- name: setup/sbt | |
run: | | |
cp -r ${{ github.workspace }}/bin/.sbt ~/.sbt | |
# checkout util and release | |
- name: checkout/util | |
uses: actions/checkout@v2.3.4 | |
with: | |
repository: twitter/util | |
token: ${{ secrets.API_KEY }} | |
ref: release | |
path: util | |
- name: release/util | |
run: | | |
${{ github.workspace }}/bin/publish --phab-id ${{ github.event.client_payload.phab_id }} --version ${{ github.event.client_payload.version }} --dry-run ${{ github.event.client_payload.dry_run }} --verbose util | |
working-directory: ${{ github.workspace }}/util | |
# checkout scrooge and release | |
- name: checkout/scrooge | |
if: ${{ success() }} | |
uses: actions/checkout@v2.3.4 | |
with: | |
repository: twitter/scrooge | |
token: ${{ secrets.API_KEY }} | |
ref: release | |
path: scrooge | |
- name: release/scrooge | |
if: ${{ success() }} | |
run: | | |
${{ github.workspace }}/bin/publish --phab-id ${{ github.event.client_payload.phab_id }} --version ${{ github.event.client_payload.version }} --dry-run ${{ github.event.client_payload.dry_run }} --verbose scrooge | |
working-directory: ${{ github.workspace }}/scrooge | |
# scrooge-sbt-plugin | |
- name: release/scrooge-sbt-plugin | |
if: ${{ success() && github.event.client_payload.scrooge_sbt_plugin }} | |
run: | | |
${{ github.workspace }}/bin/publish --phab-id ${{ github.event.client_payload.phab_id }} --version ${{ github.event.client_payload.version }} --dry-run ${{ github.event.client_payload.dry_run }} --verbose scrooge-sbt-plugin | |
working-directory: ${{ github.workspace }}/scrooge | |
# scrooge-maven-plugin | |
- name: release/scrooge-maven-plugin | |
if: ${{ success() && github.event.client_payload.scrooge_maven_plugin }} | |
run: | | |
${{ github.workspace }}/bin/publish --phab-id ${{ github.event.client_payload.phab_id }} --version ${{ github.event.client_payload.version }} --dry-run ${{ github.event.client_payload.dry_run }} --verbose scrooge-maven-plugin | |
working-directory: ${{ github.workspace }}/scrooge | |
# checkout finagle and release | |
- name: checkout/finagle | |
if: ${{ success() }} | |
uses: actions/checkout@v2.3.4 | |
with: | |
repository: twitter/finagle | |
token: ${{ secrets.API_KEY }} | |
ref: release | |
path: finagle | |
- name: release/finagle | |
if: ${{ success() }} | |
run: | | |
${{ github.workspace }}/bin/publish --phab-id ${{ github.event.client_payload.phab_id }} --version ${{ github.event.client_payload.version }} --dry-run ${{ github.event.client_payload.dry_run }} --verbose finagle | |
working-directory: ${{ github.workspace }}/finagle | |
# checkout twitter-server and release | |
- name: checkout/twitter-server | |
if: ${{ success() }} | |
uses: actions/checkout@v2.3.4 | |
with: | |
repository: twitter/twitter-server | |
token: ${{ secrets.API_KEY }} | |
ref: release | |
path: twitter-server | |
- name: release/twitter-server | |
if: ${{ success() }} | |
run: | | |
${{ github.workspace }}/bin/publish --phab-id ${{ github.event.client_payload.phab_id }} --version ${{ github.event.client_payload.version }} --dry-run ${{ github.event.client_payload.dry_run }} --verbose twitter-server | |
working-directory: ${{ github.workspace }}/twitter-server | |
# checkout finatra and release | |
- name: checkout/finatra | |
if: ${{ success() }} | |
uses: actions/checkout@v2.3.4 | |
with: | |
repository: twitter/finatra | |
token: ${{ secrets.API_KEY }} | |
ref: release | |
path: finatra | |
- name: release/finatra | |
if: ${{ success() }} | |
run: | | |
${{ github.workspace }}/bin/publish --phab-id ${{ github.event.client_payload.phab_id }} --version ${{ github.event.client_payload.version }} --dry-run ${{ github.event.client_payload.dry_run }} --verbose finatra | |
working-directory: ${{ github.workspace }}/finatra | |
- name: slack/notification-failure | |
if: ${{ cancelled() || failure() }} | |
run: ${{ github.workspace }}/bin/slack --verbose --denote-dry-run ${{ github.event.client_payload.dry_run }} --message "🐣 Versioned release \`failed\`." --color "#DA2700" | |
- name: slack/notification-success | |
if: ${{ success() }} | |
run: ${{ github.workspace }}/bin/slack --verbose --denote-dry-run ${{ github.event.client_payload.dry_run }} --message "🐣 Versioned release \`successful\`." --color "#229954" |