Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make draft release packages. (Release packages are official after tests and release announce.) - Copy from ruby/actions - Change trigger tags from `draft/v*` to `v*` (I use `draft/v*` on ruby/actions because I want to avoid to cause trouble with shell history on working directory of ruby/ruby.) - Change secrets names because secrets are repository local and use different names between ruby/ruby and ruby/actions.
- Loading branch information
Showing
1 changed file
with
161 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
name: Make draft release package | ||
|
||
on: | ||
push: | ||
tags: | ||
- 'v*' | ||
|
||
jobs: | ||
build-draft-release: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- run: env | sort | ||
- name: Dump GitHub context | ||
env: | ||
GITHUB_CONTEXT: ${{ toJson(github) }} | ||
run: echo "$GITHUB_CONTEXT" | ||
- name: Dump job context | ||
env: | ||
JOB_CONTEXT: ${{ toJson(job) }} | ||
run: echo "$JOB_CONTEXT" | ||
- name: Dump steps context | ||
env: | ||
STEPS_CONTEXT: ${{ toJson(steps) }} | ||
run: echo "$STEPS_CONTEXT" | ||
- name: Dump runner context | ||
env: | ||
RUNNER_CONTEXT: ${{ toJson(runner) }} | ||
run: echo "$RUNNER_CONTEXT" | ||
- name: Dump strategy context | ||
env: | ||
STRATEGY_CONTEXT: ${{ toJson(strategy) }} | ||
run: echo "$STRATEGY_CONTEXT" | ||
- name: Dump matrix context | ||
env: | ||
MATRIX_CONTEXT: ${{ toJson(matrix) }} | ||
run: echo "$MATRIX_CONTEXT" | ||
- name: Install libraries | ||
run: | | ||
set -x | ||
sudo apt-get update -q | ||
sudo apt-get install --no-install-recommends -q -y build-essential git bison autoconf ruby p7zip-full curl | ||
- name: Checkout ruby/ruby for tool/make-snapshot | ||
run: git clone --depth=1 https://github.com/ruby/ruby ruby | ||
- name: Make pkg | ||
run: | | ||
set -x | ||
GITHUB_REF=$(echo $GITHUB_REF | sed -e "s#/draft/#/#") | ||
TARGET_VERSION=$(echo $GITHUB_REF | sed -e "s#refs/tags/v##" -e "s/_\([a-z]\)/-\1/" -e "y/_/./") | ||
if ruby -e "major, minor, = '${TARGET_VERSION}'.split('.').map(&:to_i); exit(major<=2 && minor<7)"; then | ||
ruby ruby/tool/make-snapshot -svn pkg ${TARGET_VERSION} | ||
else | ||
# e.g. refs/tags/draft/v2_7_0_preview1 | ||
pushd ruby | ||
git fetch --shallow-since='2018-12-25 00:00:00' | ||
git fetch origin "+${GITHUB_REF}:${GITHUB_REF}" | ||
git fetch origin +refs/notes/commits:refs/notes/commits | ||
popd | ||
ruby ruby/tool/make-snapshot -srcdir=ruby pkg ${TARGET_VERSION} | ||
fi | ||
- name: Check pkg | ||
run: | | ||
set -x | ||
GITHUB_REF=$(echo $GITHUB_REF | sed -e "s#/draft/#/#") | ||
TARGET_VERSION=$(echo $GITHUB_REF | sed -e "s#refs/tags/v##" -e "s/_\([a-z]\)/-\1/" -e "y/_/./") | ||
ls -al pkg | ||
7z x pkg/ruby-${TARGET_VERSION}.zip ruby-${TARGET_VERSION}/revision.h | ||
cat ruby-${TARGET_VERSION}/revision.h | ||
7z l pkg/ruby-${TARGET_VERSION}.zip ruby-${TARGET_VERSION}/ChangeLog | ||
- name: Upload s3 | ||
run: | | ||
set -x | ||
GITHUB_REF=$(echo $GITHUB_REF | sed -e "s#/draft/#/#") | ||
TARGET_VERSION=$(echo $GITHUB_REF | sed -e "s#refs/tags/v##" -e "s/_\([a-z]\)/-\1/" -e "y/_/./") | ||
for ext in .tar.gz .tar.bz2 .tar.xz .zip; do | ||
aws s3 cp "pkg/ruby-${TARGET_VERSION}$ext" "s3://ftp.r-l.o/pub/tmp/ruby-${TARGET_VERSION}$ext.draft" --no-progress | ||
curl -sS -X PURGE -H "Fastly-Soft-Purge:1" "https://cache.ruby-lang.org/pub/tmp/ruby-${TARGET_VERSION}$ext.draft" | ||
done | ||
env: | ||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | ||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | ||
- uses: k0kubun/action-slack@v2.0.0 | ||
with: | ||
payload: | | ||
{ | ||
"attachments": [{ | ||
title: "Draft Release ${{ github.ref }}", | ||
title_link: "https://cache.ruby-lang.org/pub/tmp/", | ||
"text": "${{ job.status }}: <https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks|${{ github.workflow }}> ", | ||
"color": "danger" | ||
}] | ||
} | ||
env: | ||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
if: failure() | ||
|
||
check-draft-release: | ||
needs: build-draft-release | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install libraries | ||
run: | | ||
set -x | ||
sudo apt-get update -q | ||
sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev bison- autoconf- ruby- git- | ||
- name: Download draft | ||
run: | | ||
set -x | ||
GITHUB_REF=$(echo $GITHUB_REF | sed -e "s#/draft/#/#") | ||
TARGET_VERSION=$(echo $GITHUB_REF | sed -e "s#refs/tags/v##" -e "s/_\([a-z]\)/-\1/" -e "y/_/./") | ||
curl -sSLo ruby-${TARGET_VERSION}.tar.xz https://cache.ruby-lang.org/pub/tmp/ruby-${TARGET_VERSION}.tar.xz.draft | ||
- name: Extract | ||
run: | | ||
set -x | ||
GITHUB_REF=$(echo $GITHUB_REF | sed -e "s#/draft/#/#") | ||
TARGET_VERSION=$(echo $GITHUB_REF | sed -e "s#refs/tags/v##" -e "s/_\([a-z]\)/-\1/" -e "y/_/./") | ||
tar xf ruby-${TARGET_VERSION}.tar.xz | ||
- name: Fixed world writable dirs | ||
run: | | ||
chmod go-w $HOME | ||
sudo chmod -R go-w /usr/share | ||
- name: Set ENV | ||
run: | | ||
echo '##[set-env name=JOBS]'-j$((1 + $(nproc --all))) | ||
- name: configure | ||
run: cd ruby-*/ && ./configure | ||
- name: make | ||
run: cd ruby-*/ && make $JOBS | ||
- name: make check | ||
run: cd ruby-*/ && make $JOBS check TESTOPTS="-q --tty=no" MSPECOPT="-ff" | ||
- name: make install | ||
run: cd ruby-*/ && sudo make $JOBS install | ||
- name: ruby -v | ||
run: ruby -v | ||
- uses: k0kubun/action-slack@v2.0.0 | ||
with: | ||
payload: | | ||
{ | ||
"attachments": [{ | ||
title: "Check Draft Release ${{ github.ref }}", | ||
title_link: "https://cache.ruby-lang.org/pub/tmp/", | ||
"text": "${{ job.status }}: <https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks|${{ github.workflow }} check-draft-release>", | ||
"color": "danger" | ||
}] | ||
} | ||
env: | ||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
if: failure() | ||
- uses: k0kubun/action-slack@v2.0.0 | ||
with: | ||
payload: | | ||
{ | ||
"attachments": [{ | ||
title: "Check Draft Release ${{ github.ref }}", | ||
title_link: "https://cache.ruby-lang.org/pub/tmp/", | ||
"text": "${{ job.status }}: <https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks|${{ github.workflow }} check-draft-release>", | ||
"color": "good" | ||
}] | ||
} | ||
env: | ||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
if: success() |