Release #16
This file contains hidden or 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 | |
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 }} |