update pipeline #4
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: Set up build tools on Windows | |
if: matrix.os == 'windows-latest' | |
run: | | |
choco install make | |
choco install mingw | |
shell: powershell | |
- 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: Create release directory | |
run: mkdir -p releases | |
- 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: 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 | |
- name: Upload release assets | |
uses: actions/upload-artifact@v2 | |
with: | |
name: release-binaries | |
path: releases/ | |
release: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download release assets | |
uses: actions/download-artifact@v2 | |
with: | |
name: release-binaries | |
path: releases/ | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: Release ${{ github.ref }} | |
body: | | |
Changes in this Release | |
- First Change | |
- Second Change | |
draft: false | |
prerelease: false |