Merge main into feature/q-mega #40
Workflow file for this run
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: Prerelease Q-only | |
on: | |
workflow_dispatch: | |
inputs: | |
tag_name: | |
description: 'Tag name for release' | |
required: false | |
default: prerelease | |
push: | |
branches: [ feature/q-mega ] | |
jobs: | |
time: | |
outputs: | |
time: ${{ steps.time.outputs.time }} | |
runs-on: ubuntu-latest | |
steps: | |
- id: time | |
run: | | |
echo "time=$(date +%s)" >> "$GITHUB_OUTPUT" | |
generate_artifact_q: | |
needs: [ time ] | |
strategy: | |
matrix: | |
supported_versions: [ '2024.1', '2024.2', '2024.3' ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: remove unwanted dependencies | |
run: | | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /opt/ghc | |
sudo rm -rf "/usr/local/share/boost" | |
sudo rm -rf "$AGENT_TOOLSDIRECTORY" | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'corretto' | |
java-version: '21' | |
- name: Generate artifact | |
run: | | |
sed -i.bak "s/\(toolkitVersion\s*=\s*\)\(.*\)/\1\2-${{ needs.time.outputs.time }}/" gradle.properties | |
./gradlew -PideProfileName=${{ matrix.supported_versions }} :plugin-amazonq:buildPlugin | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: plugin-amazonq-${{ matrix.supported_versions }} | |
path: ./plugins/amazonq/build/distributions/*.zip | |
retention-days: 1 | |
generate_artifact_core: | |
needs: [ time ] | |
strategy: | |
matrix: | |
supported_versions: [ '2024.1', '2024.2', '2024.3' ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: remove unwanted dependencies | |
run: | | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /opt/ghc | |
sudo rm -rf "/usr/local/share/boost" | |
sudo rm -rf "$AGENT_TOOLSDIRECTORY" | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'corretto' | |
java-version: '21' | |
- name: Generate artifact | |
run: | | |
sed -i.bak "s/\(toolkitVersion\s*=\s*\)\(.*\)/\1\2-${{ needs.time.outputs.time }}/" gradle.properties | |
./gradlew -PideProfileName=${{ matrix.supported_versions }} :plugin-core:buildPlugin | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: plugin-core-${{ matrix.supported_versions }} | |
path: ./plugins/core/build/distributions/*.zip | |
retention-days: 1 | |
generate_changelog: | |
needs: [ time ] | |
runs-on: ubuntu-latest | |
outputs: | |
feature: ${{ steps.assign_output.outputs.feature }} | |
tagname: ${{ steps.assign_output.outputs.tagname }} | |
version: ${{ steps.assign_output.outputs.version }} | |
changes: ${{ steps.assign_output.outputs.changes }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'corretto' | |
java-version: '21' | |
- if: github.event_name == 'workflow_dispatch' | |
run: | | |
echo "TAG_NAME=${{ github.event.inputs.tag_name }}" >> $GITHUB_ENV | |
- if: github.ref_name != 'main' | |
run: | | |
TAG_NAME=${{ github.ref_name }} | |
FEAT_NAME=$(echo $TAG_NAME | sed 's/feature\///') | |
echo "FEAT_NAME=$FEAT_NAME" >> $GITHUB_ENV | |
echo "TAG_NAME=pre-$FEAT_NAME" >> $GITHUB_ENV | |
- if: github.ref_name == 'main' | |
run: | | |
echo "FEAT_NAME=" >> $GITHUB_ENV | |
echo "TAG_NAME=prerelease" >> $GITHUB_ENV | |
- name: Generate changelog | |
id: changelog | |
run: | | |
sed -i.bak "s/\(toolkitVersion\s*=\s*\)\(.*\)/\1\2-${{ needs.time.outputs.time }}/" gradle.properties | |
./gradlew :createRelease :generateChangelog | |
- name: Provide the metadata to output | |
id: assign_output | |
run: | | |
echo "feature=$FEAT_NAME" >> $GITHUB_OUTPUT | |
echo "tagname=$TAG_NAME" >> $GITHUB_OUTPUT | |
echo "version=$(cat gradle.properties | grep toolkitVersion | cut -d'=' -f2)" >> $GITHUB_OUTPUT | |
echo 'changes<<EOF' >> $GITHUB_OUTPUT | |
cat CHANGELOG.md | perl -ne 'BEGIN{$/="\n\n"} print; exit if $. == 1' >> $GITHUB_OUTPUT | |
echo 'EOF' >> $GITHUB_OUTPUT | |
publish: | |
needs: [ generate_artifact_core, generate_artifact_q, generate_changelog ] | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GH_REPO: ${{ github.repository }} | |
FEAT_NAME: ${{ needs.generate_changelog.outputs.feature }} | |
TAG_NAME: ${{ needs.generate_changelog.outputs.tagname }} | |
AWS_TOOLKIT_VERSION: ${{ needs.generate_changelog.outputs.version }} | |
BRANCH: ${{ github.ref_name }} | |
AWS_TOOLKIT_CHANGES: ${{ needs.generate_changelog.outputs.changes }} | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
- name: Delete existing prerelease | |
# "prerelease" (main branch) or "pre-<feature>" | |
if: "env.TAG_NAME == 'prerelease' || startsWith(env.TAG_NAME, 'pre-')" | |
run: | | |
echo "SUBJECT=AWS Toolkit ${AWS_TOOLKIT_VERSION}: ${FEAT_NAME:-${TAG_NAME}}" >> $GITHUB_ENV | |
gh release delete "$TAG_NAME" --cleanup-tag --yes || true | |
- name: Publish to GitHub Releases | |
run: | | |
envsubst < "$GITHUB_WORKSPACE/.github/workflows/prerelease_notes.md" > "$RUNNER_TEMP/prerelease_notes.md" | |
gh release create "$TAG_NAME" --prerelease --notes-file "$RUNNER_TEMP/prerelease_notes.md" --title "$SUBJECT" --target $GITHUB_SHA | |
- name: Publish core | |
run: | | |
gh release upload "$TAG_NAME" plugin-core-*/*.zip | |
- name: Publish Q | |
run: | | |
gh release upload "$TAG_NAME" plugin-amazonq-*/*.zip | |
- name: Publish XML manifest | |
run: | | |
gh release view "$TAG_NAME" --repo "$GITHUB_REPOSITORY" --json assets | python3 "$GITHUB_WORKSPACE/.github/workflows/generateUpdatesXml.py" - > updatePlugins.xml | |
gh release upload "$TAG_NAME" updatePlugins.xml |