return pre-commit hook #31
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: Build and Release | |
on: push | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
# - windows-latest | |
include: | |
- os: ubuntu-latest | |
image: ubuntu:latest | |
- os: macos-latest | |
image: macos-latest | |
#- os: windows-latest | |
#image: windows-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Build on Linux and macOS | |
if: matrix.os != 'windows-latest' | |
run: | | |
gcc await.c -o await -lpthread | |
- name: Build on Windows | |
if: matrix.os == 'windows-latest' | |
run: | | |
gcc await.c -o await.exe -lpthread | |
- name: Generate autocompletion scripts | |
run: | | |
mkdir -p releases | |
mkdir -p autocompletions | |
./await --autocomplete-fish > autocompletions/await.fish | |
./await --autocomplete-bash > autocompletions/await.bash | |
./await --autocomplete-zsh > autocompletions/await.zsh | |
- name: Move binary to release directory | |
run: | | |
if [ ${{ matrix.os }} == 'windows-latest' ]; then | |
mv await.exe releases/await_${{ github.ref_name }}_windows_amd64.exe | |
elif [ ${{ matrix.os }} == 'macos-latest' ]; then | |
mv await releases/await_${{ github.ref_name }}_macos_amd64 | |
else | |
mv await releases/await_${{ github.ref_name }}_linux_amd64 | |
fi | |
- name: Upload Autocompletion Scripts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: autocompletions | |
path: autocompletions | |
- name: Upload Binary | |
uses: actions/upload-artifact@v2 | |
with: | |
name: await-${{ matrix.os }} | |
path: releases/* | |
- name: Set dummy ACTIONS_RUNTIME_TOKEN and ACTIONS_RUNTIME_URL for act | |
if: ${{ env.ACT }} | |
run: | | |
echo "ACTIONS_RUNTIME_TOKEN=dummy_token" >> $GITHUB_ENV | |
echo "ACTIONS_RUNTIME_URL=https://dummy_url" >> $GITHUB_ENV | |
release: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check if Release Exists | |
id: check_release | |
run: | | |
gh release view v1.0.4 || echo "Release does not exist" | |
- name: Create or Update Release | |
id: create_update_release | |
if: steps.check_release.outputs.exists == 'false' | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: v1.0.4 | |
release_name: v1.0.4 | |
body: Fixed ctrl-c handling when it's run from bash script | |
draft: false | |
prerelease: false | |
- name: Update Release Binaries | |
if: steps.check_release.outputs.exists == 'true' | |
run: | | |
gh release upload v1.0.4 releases/* --clobber | |
- name: Download Artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: await-macos-latest | |
path: releases | |
- name: Download Artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: await-ubuntu-latest | |
path: releases | |
- name: Download Autocompletion Scripts | |
uses: actions/download-artifact@v2 | |
with: | |
name: autocompletions | |
path: autocompletions | |
- name: Upload Release Artifacts | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
releases/* | |
releases/await.* | |
autocompletions/* | |
tag_name: v1.0.4 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |