diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 9ebe77f8139..4e5d0a67b2f 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -9,6 +9,9 @@ on: push: branches: [ main, feature/* ] +concurrency: + group: ${{ github.workflow }}${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true jobs: generate_artifact_toolkit_standalone: diff --git a/.github/workflows/q-mega-prerelease.yml b/.github/workflows/q-mega-prerelease.yml deleted file mode 100644 index e919987d23c..00000000000 --- a/.github/workflows/q-mega-prerelease.yml +++ /dev/null @@ -1,164 +0,0 @@ -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<> $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-" - 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