ci: cleanup #38
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: macOS | |
on: | |
push: | |
branches: [ master, ci_test ] | |
pull_request: | |
branches: [ master, ci_test ] | |
workflow_dispatch: | |
env: | |
REPO: you54f/ruby-packer | |
PKG_DATE: 20230812 | |
NEXT_TAG: rel-20230812 | |
PUBLISH_BRANCH: next | |
jobs: | |
make: | |
strategy: | |
matrix: | |
os: [macos-11] | |
# os: [macos-latest] | |
# ruby: ['2.4','2.6','2.7', '3.0', '3.1', '3.2'] | |
ruby: ['3.2'] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: "[Enclose.IO] Install dependencies" | |
run: | | |
brew install squashfs automake bison openssl@1.1 | |
echo "$(brew --prefix bison)/bin" >>$GITHUB_PATH | |
echo "$(brew --prefix openssl@1.1)/bin" >>$GITHUB_PATH | |
- name: "[Enclose.IO] Check dependencies" | |
run: | | |
sw_vers | |
uname -a | |
uname -p | |
uname -m | |
sysctl -n machdep.cpu.brand_string | |
which mksquashfs | |
mksquashfs -version | |
- name: "[Enclose.IO] Set up Ruby" | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
- name: "[Enclose.IO] Install rubocop" | |
run: gem install rubocop | |
- name: "[Enclose.IO] Run rubocop" | |
run: rubocop | |
# - name: "[Enclose.IO] Install dependencies" | |
# run: bundle install | |
# - name: "[Enclose.IO] Rake" | |
# run: bundle exec rake | |
# - name: "[Enclose.IO] Rake" | |
# run: bundle exec rake | |
- name: "Install bundle" | |
run: bundle install | |
- name: "Download and Patch ruby source" | |
run: bundle exec rake patch_ruby_source | |
# - name: "Unlink openssl" # this is unlinked after downloading the patch as curl needs openssl@3 | |
# run: brew unlink openssl | |
- name: "Build rubyc" | |
run: bundle exec rake rubyc | |
- name: "Package rubyc" | |
run: | | |
mkdir -p pkg | |
export RUBYC_FILENAME=rubyc-$(uname -s)-$(uname -m) | |
export RUBYC_ARCHIVE_FILENAME=${RUBYC_FILENAME}.tar.gz | |
cp rubyc pkg/$RUBYC_FILENAME | |
cd pkg | |
tar -czvf $RUBYC_ARCHIVE_FILENAME $RUBYC_FILENAME | |
echo "RUBYC_FILENAME=$RUBYC_FILENAME" >> $GITHUB_ENV | |
echo "RUBYC_ARCHIVE_FILENAME=$RUBYC_ARCHIVE_FILENAME" >> $GITHUB_ENV | |
ls -l | |
- name: "[Enclose.IO] Create MacOS Test run upload" | |
uses: actions/upload-artifact@v3 | |
with: | |
name: rubyc ${{ matrix.os }} ${{ matrix.ruby }} | |
path: pkg/*.tar.gz | |
upload: | |
defaults: | |
run: | |
shell: sh | |
needs: [make] | |
permissions: | |
contents: write | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["macos-latest"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download all workflow run artifacts | |
uses: actions/download-artifact@v3 | |
- name: upload ${{ matrix.os }} package | |
run: | | |
export RUBYC_FILENAME=rubyc-$(uname -s)-$(uname -m) | |
export RUBYC_ARCHIVE_FILENAME=${RUBYC_FILENAME}.tar.gz | |
ls | |
if [[ $GITHUB_REF == "refs/heads/$PUBLISH_BRANCH" ]]; then | |
gh release upload $NEXT_TAG $RUBYC_ARCHIVE_FILENAME --repo $REPO --clobber | |
else | |
echo "Not on $PUBLISH_BRANCH branch, skipping upload" | |
fi | |
env: # note move publishing to a seperate job, token doesnt have perms for release upload | |
GITHUB_TOKEN: ${{ github.token }} |