Skip to content

Release

Release #16

Workflow file for this run

name: Release
on:
workflow_dispatch:
jobs:
deploy-release:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
packages: write
steps:
- name: Setup Maven Action
uses: s4u/setup-maven-action@4f7fb9d9675e899ca81c6161dadbba0189a4ebb1 # v1.18.0
with:
java-distribution: 'temurin'
java-version: 17
maven-version: 3.9.9
cache-enabled: true
settings-servers: |
[{
"id": "central",
"username": "${{ secrets.CENTRAL_USERNAME }}",
"password": "${{ secrets.CENTRAL_PASSWORD }}"
}]
- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config gpg.format openpgp
git config commit.gpgsign true
git config user.signingkey CB5831CAFA9D8C6AFA9FC9DA67E69853B952BA35
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@cb9bde2e2525e640591a934b1fd28eef1dcaf5e5 # v6.2.0
with:
gpg_private_key: ${{ secrets.GPG_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
- name: List keys
run: gpg -K
- name: Setup SSH
uses: webfactory/ssh-agent@dc588b651fe13675774614f8e6a936a468676387 # v0.9.0
with:
ssh-private-key: ${{ secrets.RELEASE_SSH_KEY }}
- name: Maven release
run: mvn --batch-mode --update-snapshots -Dmaven.resolver.transport=wagon -DskipTests -Darguments="-DskipTests" release:prepare release:perform
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Finalize release
run: |
draft_id=$(gh api /repos/oras-project/oras-java/releases | jq -r '.[] | select(.draft == true) | .id')
echo "Draft ID: $draft_id"
gh api -X PATCH -F draft=false /repos/oras-project/oras-java/releases/$draft_id
release_tag_name=$(gh api /repos/oras-project/oras-java/releases/latest | jq -r '.tag_name')
echo "Release tag: $release_tag_name"
for file in target/checkout/target/*.jar target/checkout/target/*.jar.asc target/checkout/target/*.jar.sigstore.json; do
if [[ -f "$file" ]]; then
if [[ "$file" != *javadoc* && "$file" != *sources* && "$file" != *tests* ]]; then
echo "Uploading $file"
gh release upload "$release_tag_name" "$file" --repo oras-project/oras-java
else
echo "Skipping $file"
fi
else
echo "Skipping missing file: $file"
fi
done
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}