Publish Ruby packages #48
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: Publish Ruby packages | |
| on: | |
| repository_dispatch: | |
| types: | |
| - release | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version of the Ruby package to release' | |
| required: true | |
| default: '3.3.4' | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - uses: ruby/setup-ruby@319994f95fa847cf3fb3cd3dbe89f6dcde9f178f # v1.295.0 | |
| with: | |
| ruby-version: 3.3.4 | |
| - name: Store Ruby version | |
| env: | |
| RUBY_VERSION: ${{ github.event.client_payload.version || github.event.inputs.version }} | |
| run: | | |
| echo "RUBY_VERSION=${RUBY_VERSION}" >> $GITHUB_ENV | |
| - name: Store ABI version | |
| run: echo "ABI_VERSION=$(echo ${RUBY_VERSION} | cut -d '.' -f 1-2)" >> $GITHUB_ENV | |
| - name: Copy draft package `/tmp` to `/pub` directory | |
| run: tool/release.sh ${RUBY_VERSION} | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.FTP_R_L_O_AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.FTP_R_L_O_AWS_SECRET_ACCESS_KEY }} | |
| AWS_DEFAULT_REGION: us-west-2 | |
| - name: Purge URLs of release package | |
| run: | | |
| curl -X POST \ | |
| -H "Fastly-Key: ${{ secrets.FASTLY_PURGE_TOKEN }}" \ | |
| https://api.fastly.com/purge/cache.ruby-lang.org/pub/ruby/${ABI_VERSION}/ruby-${RUBY_VERSION}.tar.gz | |
| curl -X POST \ | |
| -H "Fastly-Key: ${{ secrets.FASTLY_PURGE_TOKEN }}" \ | |
| https://api.fastly.com/purge/cache.ruby-lang.org/pub/ruby/${ABI_VERSION}/ruby-${RUBY_VERSION}.tar.xz | |
| curl -X POST \ | |
| -H "Fastly-Key: ${{ secrets.FASTLY_PURGE_TOKEN }}" \ | |
| https://api.fastly.com/purge/cache.ruby-lang.org/pub/ruby/${ABI_VERSION}/ruby-${RUBY_VERSION}.zip | |
| - name: Create a release on GitHub | |
| run: | | |
| RELEASE_TAG=$(ruby tool/ruby-version.rb tag "${RUBY_VERSION}") | |
| echo $RELEASE_TAG | |
| PREVIOUS_RELEASE_TAG=$(ruby tool/ruby-version.rb previous-tag "${RUBY_VERSION}") | |
| echo $PREVIOUS_RELEASE_TAG | |
| tool/gen-github-release.rb $PREVIOUS_RELEASE_TAG $RELEASE_TAG --no-dry-run | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.MATZBOT_AUTO_UPDATE_TOKEN }} | |
| - name: Update versions index | |
| run: | | |
| curl -L -X POST \ | |
| -H "Authorization: Bearer ${{ secrets.MATZBOT_GITHUB_WORKFLOW_TOKEN }}" \ | |
| -H "Accept: application/vnd.github+json" \ | |
| -H "X-GitHub-Api-Version: 2022-11-28" \ | |
| https://api.github.com/repos/ruby/actions/dispatches \ | |
| -d '{"event_type": "update_index"}' | |
| - name: Build and push Docker images | |
| run: | | |
| curl -L -X POST \ | |
| -H "Authorization: Bearer ${{ secrets.MATZBOT_GITHUB_WORKFLOW_TOKEN }}" \ | |
| -H "Accept: application/vnd.github+json" \ | |
| -H "X-GitHub-Api-Version: 2022-11-28" \ | |
| https://api.github.com/repos/ruby/docker-images/dispatches \ | |
| -d "{\"event_type\": \"build\", \"client_payload\": {\"ruby_version\": \"${RUBY_VERSION}\"}}" | |
| - name: Build snapcraft packages | |
| run: | | |
| curl -L -X POST \ | |
| -H "Authorization: Bearer ${{ secrets.MATZBOT_GITHUB_WORKFLOW_TOKEN }}" \ | |
| -H "Accept: application/vnd.github+json" \ | |
| -H "X-GitHub-Api-Version: 2022-11-28" \ | |
| https://api.github.com/repos/ruby/snap.ruby/dispatches \ | |
| -d "{\"event_type\": \"build\", \"client_payload\": {\"ruby_version\": \"${RUBY_VERSION}\"}}" | |
| - name: Store the latest LTS version of OpenSSL | |
| run: | | |
| echo "OPENSSL_VERSION=`curl -s https://api.github.com/repos/openssl/openssl/releases | jq -r '.[].tag_name | select(startswith("openssl-3.0"))' | sort -Vr | head -n1 | cut -d'-' -f2`" >> $GITHUB_ENV | |
| - name: Update ruby-build definition | |
| run: | | |
| curl -L -X POST \ | |
| -H "Authorization: Bearer ${{ secrets.RUBY_BUILD_WORKFLOW_TOKEN }}" \ | |
| -H "Accept: application/vnd.github+json" \ | |
| -H "X-GitHub-Api-Version: 2022-11-28" \ | |
| https://api.github.com/repos/rbenv/ruby-build/dispatches \ | |
| -d "{\"event_type\": \"update-ruby\", \"client_payload\": {\"ruby_version\": \"${RUBY_VERSION}\", \"openssl_version\": \"${OPENSSL_VERSION}\"}}" | |
| - name: Update all-ruby definition | |
| run: | | |
| curl -L -X POST \ | |
| -H "Authorization: Bearer ${{ secrets.MATZBOT_GITHUB_WORKFLOW_TOKEN }}" \ | |
| -H "Accept: application/vnd.github+json" \ | |
| -H "X-GitHub-Api-Version: 2022-11-28" \ | |
| https://api.github.com/repos/ruby/all-ruby/dispatches \ | |
| -d '{"event_type": "update"}' |