docs: update CHANGELOG for 5.2.0 release #217
Workflow file for this run
This file contains hidden or 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: Binaries | |
| defaults: | |
| run: | |
| shell: bash | |
| on: | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - 'v[0-9]+.[0-9]+.[0-9]+' | |
| pull_request: | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ghc: ["9.12.2", "9.10.2", "9.8.4", "9.6.7"] | |
| os: [ubuntu-latest] | |
| include: | |
| - os: windows-latest | |
| ghc: "9.12.2" | |
| - os: macOS-latest | |
| ghc: "9.12.2" | |
| env: | |
| # Modify this value to "invalidate" the cabal cache. | |
| CABAL_CACHE_VERSION: "2024-01-05" | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - uses: haskell-actions/setup@v2 | |
| id: setup-haskell | |
| with: | |
| ghc-version: ${{ matrix.ghc }} | |
| cabal-version: '3.10.3.0' | |
| - name: Set some window specific things | |
| if: matrix.os == 'windows-latest' | |
| run: echo 'EXE_EXT=.exe' >> $GITHUB_ENV | |
| - name: Configure project | |
| run: | | |
| cabal configure --enable-tests --enable-benchmarks --write-ghc-environment-files=ghc8.4.4+ | |
| cabal build all --enable-tests --enable-benchmarks --dry-run | |
| - name: Cabal cache over S3 | |
| uses: action-works/cabal-cache-s3@v1-test | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| with: | |
| region: us-west-2 | |
| dist-dir: dist-newstyle | |
| store-path: ${{ steps.setup-haskell.outputs.cabal-store }} | |
| threads: 16 | |
| archive-uri: ${{ secrets.BINARY_CACHE_URI }}/${{ env.CABAL_CACHE_VERSION }}/${{ runner.os }}/${{ matrix.cabal }}/${{ matrix.ghc }} | |
| skip: "${{ secrets.BINARY_CACHE_URI == '' }}" | |
| - name: Cabal cache over HTTPS | |
| uses: action-works/cabal-cache-s3@v1-test | |
| with: | |
| dist-dir: dist-newstyle | |
| store-path: ${{ steps.setup-haskell.outputs.cabal-store }} | |
| threads: 16 | |
| archive-uri: https://cache.haskellworks.io/${{ env.CABAL_CACHE_VERSION }}/${{ runner.os }}/${{ matrix.cabal }}/${{ matrix.ghc }} | |
| skip: "${{ secrets.BINARY_CACHE_URI != '' }}" | |
| - name: Build | |
| run: cabal build all --enable-tests --enable-benchmarks | |
| - name: Test | |
| run: cabal test all --enable-tests --enable-benchmarks | |
| check: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Check if cabal project is sane | |
| run: | | |
| PROJECT_DIR=$PWD | |
| mkdir -p $PROJECT_DIR/build/sdist | |
| for i in $(git ls-files | grep '\.cabal'); do | |
| cd $PROJECT_DIR && cd `dirname $i` | |
| cabal check | |
| done | |
| release: | |
| needs: [build, check] | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| outputs: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Create source distribution | |
| run: | | |
| PROJECT_DIR=$PWD | |
| mkdir -p $PROJECT_DIR/build/sdist | |
| for i in $(git ls-files | grep '\.cabal'); do | |
| cd $PROJECT_DIR && cd `dirname $i` | |
| cabal v2-sdist -o $PROJECT_DIR/build/sdist | |
| done; | |
| - name: Publish to hackage | |
| env: | |
| server: http://hackage.haskell.org | |
| username: ${{ secrets.HACKAGE_USER }} | |
| password: ${{ secrets.HACKAGE_PASS }} | |
| candidate: false | |
| run: | | |
| package_version="$(cat *.cabal | grep '^version:' | cut -d : -f 2 | xargs)" | |
| for PACKAGE_TARBALL in $(find ./build/sdist/ -name "*.tar.gz"); do | |
| PACKAGE_NAME=$(basename ${PACKAGE_TARBALL%.*.*}) | |
| if ${{ env.candidate }}; then | |
| TARGET_URL="${{ env.server }}/packages/candidates"; | |
| DOCS_URL="${{ env.server }}/package/$PACKAGE_NAME/candidate/docs" | |
| else | |
| TARGET_URL="${{ env.server }}/packages/upload"; | |
| DOCS_URL="${{ env.server }}/package/$PACKAGE_NAME/docs" | |
| fi | |
| HACKAGE_STATUS=$(curl --silent --head -w %{http_code} -XGET --anyauth --user "${{ env.username }}:${{ env.password }}" ${{ env.server }}/package/$PACKAGE_NAME -o /dev/null) | |
| if [ "$HACKAGE_STATUS" = "404" ]; then | |
| echo "Uploading $PACKAGE_NAME to $TARGET_URL" | |
| curl -X POST -f --user "${{ env.username }}:${{ env.password }}" $TARGET_URL -F "package=@$PACKAGE_TARBALL" | |
| echo "Uploaded $PACKAGE_NAME" | |
| else | |
| echo "Package $PACKAGE_NAME" already exists on Hackage. | |
| fi | |
| done | |
| - name: Create Release | |
| id: create_release | |
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: ${{ github.ref_name }} | |
| release_name: Release ${{ github.ref_name }} | |
| body: | | |
| Release ${{ github.ref_name }} | |
| See [CHANGELOG.md](https://github.com/haskell-works/tasty-discover/blob/main/CHANGELOG.md) for details. | |
| draft: true | |
| prerelease: false |