mirror of
https://github.com/sdkman/sdkman-cli.git
synced 2026-04-17 13:38:03 -04:00
71 lines
2.6 KiB
YAML
71 lines
2.6 KiB
YAML
name: Release
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: "Release version"
|
|
required: true
|
|
jobs:
|
|
build:
|
|
name: "Stable Release"
|
|
if: github.repository == 'sdkman/sdkman-cli'
|
|
runs-on: ubuntu-latest
|
|
environment: production
|
|
env:
|
|
JRELEASER_GITHUB_TOKEN: ${{ github.token }}
|
|
JRELEASER_TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_API_KEY }}
|
|
JRELEASER_TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_API_SECRET }}
|
|
JRELEASER_TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }}
|
|
JRELEASER_TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
|
|
JRELEASER_MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN}}
|
|
services:
|
|
mongodb:
|
|
image: mongo:3.2
|
|
ports:
|
|
- 27017:27017
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'temurin'
|
|
java-version: '11'
|
|
cache: 'gradle'
|
|
- name: Run tests
|
|
run: ./gradlew clean test --info
|
|
- name: Build artifacts
|
|
run: ./gradlew -Penv=stable -Prelease=${{ github.event.inputs.version }} clean assemble
|
|
- name: Release
|
|
run: ./gradlew -Penv=stable -Prelease=${{ github.event.inputs.version }} jreleaserFullRelease --exclude-announcer=twitter
|
|
- name: Update MongoDB
|
|
env:
|
|
MONGO_URL: ${{ secrets.MONGO_URL }}
|
|
MONGO_USERNAME: ${{ secrets.MONGO_USERNAME }}
|
|
MONGO_PASSWORD: ${{ secrets.MONGO_PASSWORD }}
|
|
RELEASE_TAG: ${{ github.event.inputs.version }}
|
|
run: bin/release-binary.sh "$MONGO_URL" "$MONGO_USERNAME" "$MONGO_PASSWORD" "$RELEASE_TAG" "stable"
|
|
- name: Tweet about it
|
|
run: ./gradlew -Penv=stable -Prelease=${{ github.event.inputs.version }} jreleaserAnnounce
|
|
|
|
notify-failure:
|
|
name: "Notify on Failure"
|
|
runs-on: ubuntu-latest
|
|
needs: [build]
|
|
if: failure()
|
|
steps:
|
|
- name: Notify Chloé
|
|
env:
|
|
REPO: ${{ github.repository }}
|
|
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
run: |
|
|
MSG="❌ Release build failed: ${REPO}"
|
|
MSG+=$'\nRun: '"${RUN_URL}"
|
|
PAYLOAD=$(jq -n --arg msg "$MSG" --arg name "GitHub CI" \
|
|
'{message: $msg, name: $name, deliver: true, channel: "discord", to: "user:918237603617206303"}')
|
|
curl -sf -X POST \
|
|
-H "Authorization: Bearer ${{ secrets.OPENCLAW_HOOK_TOKEN }}" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$PAYLOAD" \
|
|
"${{ secrets.OPENCLAW_HOOK_URL }}"
|