--- on: push: branches: - release-v* - trying - staging tags: - 'v[0-9]+.[0-9]+.[0-9]+' # this only concerns tags on stable name: Test binaries with cargo test jobs: check: name: Test on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-18.04, macos-latest] steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: clippy - name: Run cargo test uses: actions-rs/cargo@v1 with: command: test args: --locked --release - name: Run cargo clippy uses: actions-rs/cargo@v1 with: command: clippy args: --all-targets build-image: name: Test the build of Docker image runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v1 - run: docker build . --file Dockerfile -t meilisearch name: Docker build ## A push occurred on a release branch, a prerelease is created and assets are generated prerelease: name: create prerelease needs: [check, build-image] if: ${{ contains(github.ref, 'release-') && github.event_name == 'push' }} runs-on: ubuntu-18.04 steps: - name: Checkout code uses: actions/checkout@v2 with: fetch-depth: 0 - name: Get version number id: version-number run: echo "##[set-output name=number;]$(echo ${{ github.ref }} | sed 's/.*\(v.*\)/\1/')" - name: Get commit count id: commit-count run: echo "##[set-output name=count;]$(git rev-list remotes/origin/master..remotes/origin/release-${{ steps.version-number.outputs.number }} --count)" - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.PUBLISH_TOKEN }} # Personal Access Token with: tag_name: ${{ steps.version-number.outputs.number }}rc${{ steps.commit-count.outputs.count }} release_name: Pre-release ${{ steps.version-number.outputs.number }}-rc${{ steps.commit-count.outputs.count }} prerelease: true ## If a tag is pushed, a release is created for this tag, and assets will be generated release: name: create release needs: [check, build-image] if: ${{ contains(github.ref, 'tags/v') }} runs-on: ubuntu-18.04 steps: - name: Checkout code uses: actions/checkout@v2 - name: Get version number id: version-number run: echo "##[set-output name=number;]$(echo ${{ github.ref }} | sed 's/.*\(v.*\)/\1/')" - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.PUBLISH_TOKEN }} # PAT with: tag_name: ${{ steps.version-number.outputs.number }} release_name: Meilisearch ${{ steps.version-number.outputs.number }} prerelease: false