'on': push: branches: - '*' pull_request: null jobs: check: runs-on: windows-latest steps: - uses: actions/checkout@v2 - uses: actions/cache@v1 with: path: ~/.cargo/registry key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}' - uses: actions/cache@v1 with: path: ~/.cargo/git key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}' - uses: actions/cache@v1 with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - uses: actions-rs/cargo@v1 with: command: check build: needs: - check runs-on: '${{ matrix.os }}' strategy: matrix: include: - os: windows-latest target: x86_64-unknown-linux-gnu suffix: '' steps: - uses: actions/checkout@master with: lfs: true - id: get_repository_name run: echo ::set-output name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}' | sed -e "s/:refs//") shell: bash - uses: actions/download-artifact@master with: name: version - id: get_version run: 'echo ::set-output "name=VERSION::$(cat ./version/version)"' shell: bash - uses: actions/cache@v1 with: path: ~/.cargo/registry key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}' - uses: actions/cache@v1 with: path: ~/.cargo/git key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}' - uses: actions/cache@v1 with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - uses: actions-rs/cargo@v1 with: command: install args: 'toml-cli' - shell: bash env: VERSION: '${{ steps.get_version.outputs.VERSION }}' run: | TEMP_FILE="$(mktemp)" toml set Cargo.toml package.version "${VERSION:1}" > "$TEMP_FILE" mv "$TEMP_FILE" Cargo.toml - uses: actions-rs/cargo@v1 env: VERSION: '${{ steps.get_version.outputs.VERSION }}' REPOSITORY_NAME: '${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}' with: command: build args: '--release' - uses: actions/upload-artifact@master with: name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-${{ matrix.target }} path: ./target/release/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}${{ matrix.suffix }} release: if: github.ref == 'refs/heads/master' needs: - build runs-on: windows-latest steps: - uses: actions/checkout@master with: lfs: true - id: get_repository_name run: echo ::set-output name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}' | sed -e "s/:refs//") shell: bash - uses: actions/download-artifact@master with: name: version - id: get_version run: 'echo ::set-output name=VERSION::$(cat ./version/version)' shell: bash - uses: actions/download-artifact@master with: name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-unknown-linux-gnu - uses: actions/download-artifact@master with: name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-apple-darwin - uses: actions/download-artifact@master with: name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-pc-windows-msvc - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - uses: actions-rs/cargo@v1 with: command: install args: 'toml-cli' - run: | TEMP_FILE="$(mktemp)" toml set Cargo.toml package.version "${VERSION:1}" > "$TEMP_FILE" mv "$TEMP_FILE" Cargo.toml shell: bash env: VERSION: '${{ steps.get_version.outputs.VERSION }}' - uses: stefanzweifel/git-auto-commit-action@v4.1.3 with: commit_message: Bump cargo version branch: ${{ github.head_ref }} file_pattern: Cargo.toml - id: create_release uses: actions/create-release@v1.0.0 env: GITHUB_TOKEN: '${{ secrets.COMMITTER_TOKEN }}' with: tag_name: '${{ steps.get_version.outputs.VERSION }}' release_name: 'Release ${{ steps.get_version.outputs.VERSION }}' draft: false prerelease: false - uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' with: upload_url: '${{ steps.create_release.outputs.upload_url }}' asset_path: ./${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-unknown-linux-gnu/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }} asset_name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-unknown-linux-gnu asset_content_type: application/octet-stream - uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' with: upload_url: '${{ steps.create_release.outputs.upload_url }}' asset_path: ./${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-apple-darwin/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }} asset_name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-apple-darwin asset_content_type: application/octet-stream - uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' with: upload_url: '${{ steps.create_release.outputs.upload_url }}' asset_path: ./${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-pc-windows-msvc/${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}.exe asset_name: ${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}-x86_64-pc-windows-msvc.exe asset_content_type: application/octet-stream