From e4dcd0cf651a9082d79cae083ff8e8325f6db7b2 Mon Sep 17 00:00:00 2001 From: mii8080 <39086319+morioka22@users.noreply.github.com> Date: Sat, 2 Oct 2021 00:11:12 +0900 Subject: [PATCH] Create main.yml --- .github/workflows/main.yml | 116 +++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..f19158e --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,116 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: [ master ] + pull_request: + branches: [ master ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + upload-release: + strategy: + matrix: + target: + - x86_64-unknown-linux-gnu + - x86_64-pc-windows-gnu + - x86_64-apple-darwin + needs: [create-release] + runs-on: ubuntu-latest + steps: + - uses: actions/download-artifact@v1 + with: + name: create-release + - id: upload-url + run: | + echo "::set-output name=url::$(cat create-release/release_upload_url.txt)" + - uses: actions/download-artifact@v1 + with: + name: build-${{ matrix.target }} + - uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.upload-url.outputs.url }} + asset_path: ./build-${{ matrix.target }}/rustris-${{ matrix.target }}.zip + asset_name: slack-stream-json-${{ matrix.target }}.zip + asset_content_type: application/zip + create-release: + needs: [build] + runs-on: ubuntu-latest + steps: + - id: create-release + uses: actions/create-release@v1.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + - run: | + echo '${{ steps.create-release.outputs.upload_url }}' > release_upload_url.txt + - uses: actions/upload-artifact@v1 + with: + name: create-release + path: release_upload_url.txt + build: + strategy: + matrix: + target: + - x86_64-unknown-linux-gnu + - x86_64-pc-windows-gnu + - x86_64-apple-darwin + include: + - target: x86_64-unknown-linux-gnu + os: ubuntu-latest + - target: x86_64-pc-windows-gnu + os: ubuntu-latest + - target: x86_64-apple-darwin + os: macos-latest + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v1 + + # https://github.com/actions/cache/blob/master/examples.md#rust---cargo + - name: Cache cargo registry + uses: actions/cache@v1 + with: + path: ~/.cargo/registry + key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} + - name: Cache cargo index + uses: actions/cache@v1 + with: + path: ~/.cargo/git + key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} + - name: Cache cargo build + uses: actions/cache@v1 + with: + path: target + key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} + + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + - uses: actions-rs/cargo@v1.0.1 + with: + command: build + args: --release --target=${{ matrix.target }} + use-cross: true + + - run: | + zip --junk-paths slack-stream-json-${{ matrix.target }} target/${{ matrix.target }}/release/rustris{,.exe} + - uses: actions/upload-artifact@v1 + with: + name: build-${{ matrix.target }} + path: rustris-${{ matrix.target }}.zip