diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..7c63099b0 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,74 @@ +# .github/workflows/release.yml +# This workflow automates the release and production deploy process. +# +# When a release branch is merged into the main branch it: +# - Creates a new tag and release +# - Creates a code artifact and pushes it to Acquia for deployment +name: Release + +on: + pull_request: + types: [ closed ] + +jobs: + build: + runs-on: ubuntu-latest + permissions: write-all + if: github.event.pull_request.merged + container: + image: pookmish/drupal8ci:latest + steps: + - name: Get Next Release + id: tag + uses: K-Phoen/semver-release-action@master + with: + release_strategy: none + release_branch: main + tag_format: "%major%.%minor%.%patch%" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Creating new release for ${{ steps.tag.outputs.tag }} + if: ${{ steps.tag.outputs.tag }} + uses: ncipollo/release-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + name: ${{ steps.tag.outputs.tag }} + tag: ${{ steps.tag.outputs.tag }} + commit: ${{ github.sha }} + generateReleaseNotes: true + makeLatest: true + - name: Install SSH key + uses: shimataro/ssh-key-action@v2 + with: + key: ${{ secrets.ACQUIA_SSH_KEY }} + name: id_rsa + known_hosts: ${{ secrets.KNOWN_HOSTS }} + if_key_exists: fail + - uses: actions/checkout@v4 + if: ${{ steps.tag.outputs.tag }} + with: + ref: ${{ github.sha }} + - name: Restore Cache + if: ${{ steps.tag.outputs.tag }} + uses: actions/cache@v4 + with: + path: | + vendor + docroot/core + docroot/libraries + docroot/modules/contrib + key: 4.x-${{ hashFiles('blt/blt.yml') }}-${{ hashFiles('composer.json') }}-${{ hashFiles('composer.lock') }} + restore-keys: | + 4.x-${{ hashFiles('blt/blt.yml') }}-${{ hashFiles('composer.json') }}-${{ hashFiles('composer.lock') }} + 4.x-${{ hashFiles('blt/blt.yml') }}-${{ hashFiles('composer.json') }}- + 4.x-${{ hashFiles('blt/blt.yml') }}- + - name: Deploy Tag + if: ${{ steps.tag.outputs.tag }} + run: | + git config --system --add safe.directory '*' && + git config --global user.email "sws-developers@lists.stanford.edu" && + git config --global user.name "Github Actions" && + ssh-keyscan -t rsa svn-23450.prod.hosting.acquia.com >> /root/.ssh/known_hosts && + composer install -n && + blt deploy --tag=$(date +'%Y-%m-%d')"_"${{ steps.tag.outputs.tag }} --commit-msg=${{ steps.tag.outputs.tag }} --no-interaction diff --git a/.github/workflows/tag_commits_to_main.yml b/.github/workflows/tag_commits_to_main.yml deleted file mode 100644 index 7f034ad88..000000000 --- a/.github/workflows/tag_commits_to_main.yml +++ /dev/null @@ -1,18 +0,0 @@ -# .github/workflows/tag_commits_to_main.yml -name: Tag Commits to Main - -on: - pull_request: - types: closed - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Tag - uses: K-Phoen/semver-release-action@master - with: - release_branch: main - tag_format: "%major%.%minor%.%patch%" - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}