diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5121ab2..6c5e128 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,268 +1,108 @@ -# This file was autogenerated using `zio-sbt-ci` plugin via `sbt ciGenerateGithubWorkflow` -# task and should be included in the git repository. Please do not edit it manually. +# This file was automatically generated by sbt-github-actions using the +# githubWorkflowGenerate task. You should add and commit this file to +# your git repository. It goes without saying that you shouldn't edit +# this file by hand! Instead, if you wish to make changes, you should +# change your sbt build configuration to revise the workflow description +# to meet your needs, then regenerate this file. -name: CI -env: - JDK_JAVA_OPTIONS: -XX:+PrintCommandLineFlags -Xms6G -Xmx6G -Xss4M -XX:+UseG1GC -'on': - workflow_dispatch: {} - release: - types: - - published - push: - branches: - - series/2.x +name: Continuous Integration + +on: pull_request: - branches-ignore: - - gh-pages -concurrency: - group: ${{ github.workflow }}-${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && github.run_id || github.ref }} - cancel-in-progress: true + branches: ['**'] + push: + branches: ['**'] + +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + jobs: build: - name: Build - runs-on: ubuntu-latest - continue-on-error: true - steps: - - name: Git Checkout - uses: actions/checkout@v6 - with: - fetch-depth: '0' - - name: Install libuv - run: sudo apt-get update && sudo apt-get install -y libuv1-dev - - name: Setup Scala - uses: actions/setup-java@v5 - with: - distribution: corretto - java-version: '17' - check-latest: true - - name: Setup SBT - uses: sbt/setup-sbt@v1 - - name: Cache Dependencies - uses: coursier/cache-action@v7 - - name: Check all code compiles - run: sbt +Test/compile - - name: Check artifacts build process - run: sbt +publishLocal - - name: Check website build process - run: sbt docs/clean; sbt docs/buildWebsite - lint: - name: Lint - runs-on: ubuntu-latest - continue-on-error: false - steps: - - name: Git Checkout - uses: actions/checkout@v6 - with: - fetch-depth: '0' - - name: Install libuv - run: sudo apt-get update && sudo apt-get install -y libuv1-dev - - name: Setup Scala - uses: actions/setup-java@v5 - with: - distribution: corretto - java-version: '17' - check-latest: true - - name: Setup SBT - uses: sbt/setup-sbt@v1 - - name: Cache Dependencies - uses: coursier/cache-action@v7 - - name: Check if the site workflow is up to date - run: sbt ciCheckGithubWorkflow - - name: Lint - run: sbt lint - test: - name: Test - runs-on: ubuntu-latest - continue-on-error: false + name: Build and Test strategy: - fail-fast: false matrix: - java: - - '17' - - '21' + os: [ubuntu-latest] + scala: [3.3.7, 2.13.18] + java: [zulu@8] + runs-on: ${{ matrix.os }} steps: - - name: Install libuv - run: sudo apt-get update && sudo apt-get install -y libuv1-dev - - name: Setup Scala - uses: actions/setup-java@v5 - with: - distribution: corretto - java-version: ${{ matrix.java }} - check-latest: true - - name: Setup SBT - uses: sbt/setup-sbt@v1 - - name: Cache Dependencies - uses: coursier/cache-action@v7 - - name: Git Checkout - uses: actions/checkout@v6 - with: - fetch-depth: '0' - - name: Test - run: sbt +test - update-readme: - name: Update README - runs-on: ubuntu-latest - continue-on-error: false - if: ${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} - steps: - - name: Git Checkout - uses: actions/checkout@v6 - with: - fetch-depth: '0' - - name: Install libuv - run: sudo apt-get update && sudo apt-get install -y libuv1-dev - - name: Setup Scala - uses: actions/setup-java@v5 - with: - distribution: corretto - java-version: '17' - check-latest: true - - name: Setup SBT - uses: sbt/setup-sbt@v1 - - name: Cache Dependencies - uses: coursier/cache-action@v7 - - name: Generate Readme - run: sbt docs/generateReadme - - name: Commit Changes - run: | - git config --local user.email "zio-assistant[bot]@users.noreply.github.com" - git config --local user.name "ZIO Assistant" - git add README.md - git commit -m "Update README.md" || echo "No changes to commit" - - name: Generate Token - id: generate-token - uses: zio/generate-github-app-token@v1.0.0 - with: - app_id: ${{ secrets.APP_ID }} - app_private_key: ${{ secrets.APP_PRIVATE_KEY }} - - name: Create Pull Request - id: cpr - uses: peter-evans/create-pull-request@v7 - with: - body: |- - Autogenerated changes after running the `sbt docs/generateReadme` command of the [zio-sbt-website](https://zio.dev/zio-sbt) plugin. + - name: Checkout current branch (full) + uses: actions/checkout@v6 + with: + fetch-depth: 0 - I will automatically update the README.md file whenever there is new change for README.md, e.g. - - After each release, I will update the version in the installation section. - - After any changes to the "docs/index.md" file, I will update the README.md file accordingly. - branch: zio-sbt-website/update-readme - commit-message: Update README.md - token: ${{ steps.generate-token.outputs.token }} - delete-branch: true - title: Update README.md - - name: Approve PR - if: ${{ steps.cpr.outputs.pull-request-number }} - run: gh pr review "$PR_URL" --approve - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PR_URL: ${{ steps.cpr.outputs.pull-request-url }} - - name: Enable Auto-Merge - if: ${{ steps.cpr.outputs.pull-request-number }} - run: gh pr merge --auto --squash "$PR_URL" || gh pr merge --squash "$PR_URL" - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PR_URL: ${{ steps.cpr.outputs.pull-request-url }} - ci: - name: ci - runs-on: ubuntu-latest - continue-on-error: false - needs: - - lint - - test - - build - steps: - - name: Report Successful CI - run: echo "ci passed" - release: - name: Release - runs-on: ubuntu-latest - continue-on-error: false - needs: - - ci - if: ${{ github.event_name != 'pull_request' }} - steps: - - name: Git Checkout - uses: actions/checkout@v6 - with: - fetch-depth: '0' - - name: Install libuv - run: sudo apt-get update && sudo apt-get install -y libuv1-dev - - name: Setup Scala - uses: actions/setup-java@v5 - with: - distribution: corretto - java-version: '17' - check-latest: true - - name: Setup SBT - uses: sbt/setup-sbt@v1 - - name: Cache Dependencies - uses: coursier/cache-action@v7 - - name: Release - run: sbt ci-release - env: - PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} - PGP_SECRET: ${{ secrets.PGP_SECRET }} - SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} - SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} - release-docs: - name: Release Docs - runs-on: ubuntu-latest - continue-on-error: false - needs: - - release - if: ${{ ((github.event_name == 'release') && (github.event.action == 'published')) || (github.event_name == 'workflow_dispatch') }} - steps: - - name: Git Checkout - uses: actions/checkout@v6 - with: - fetch-depth: '0' - - name: Install libuv - run: sudo apt-get update && sudo apt-get install -y libuv1-dev - - name: Setup Scala - uses: actions/setup-java@v5 - with: - distribution: corretto - java-version: '17' - check-latest: true - - name: Setup SBT - uses: sbt/setup-sbt@v1 - - name: Cache Dependencies - uses: coursier/cache-action@v7 - - name: Setup NodeJs - uses: actions/setup-node@v6 - with: - node-version: 16.x - registry-url: https://registry.npmjs.org - - name: Publish Docs to NPM Registry - run: sbt docs/publishToNpm - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - notify-docs-release: - name: Notify Docs Release - runs-on: ubuntu-latest - continue-on-error: false - needs: - - release-docs - if: ${{ (github.event_name == 'release') && (github.event.action == 'published') }} + - name: Setup Java (zulu@8) + if: matrix.java == 'zulu@8' + uses: actions/setup-java@v5 + with: + distribution: zulu + java-version: 8 + cache: sbt + + - name: Setup sbt + uses: sbt/setup-sbt@v1 + + - name: Check that workflows are up to date + run: sbt '++ ${{ matrix.scala }}' githubWorkflowCheck + + - name: Build project + run: sbt '++ ${{ matrix.scala }}' test + + - name: Compress target directories + run: tar cf targets.tar target zio-sqs/target zio-sqs-docs/target project/target + + - name: Upload target directories + uses: actions/upload-artifact@v5 + with: + name: target-${{ matrix.os }}-${{ matrix.scala }}-${{ matrix.java }} + path: targets.tar + + publish: + name: Publish Artifacts + needs: [build] + if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/main') + strategy: + matrix: + os: [ubuntu-latest] + scala: [2.13.18] + java: [zulu@8] + runs-on: ${{ matrix.os }} steps: - - name: Git Checkout - uses: actions/checkout@v6 - with: - fetch-depth: '0' - - name: notify the main repo about the new release of docs package - run: | - PACKAGE_NAME=$(cat docs/package.json | grep '"name"' | awk -F'"' '{print $4}') - PACKAGE_VERSION=$(npm view $PACKAGE_NAME version) - curl -L \ - -X POST \ - -H "Accept: application/vnd.github+json" \ - -H "Authorization: token ${{ secrets.PAT_TOKEN }}"\ - https://api.github.com/repos/zio/zio/dispatches \ - -d '{ - "event_type":"update-docs", - "client_payload":{ - "package_name":"'"${PACKAGE_NAME}"'", - "package_version": "'"${PACKAGE_VERSION}"'" - } - }' + - name: Checkout current branch (full) + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Setup Java (zulu@8) + if: matrix.java == 'zulu@8' + uses: actions/setup-java@v5 + with: + distribution: zulu + java-version: 8 + cache: sbt + + - name: Setup sbt + uses: sbt/setup-sbt@v1 + + - name: Download target directories (3.3.7) + uses: actions/download-artifact@v6 + with: + name: target-${{ matrix.os }}-3.3.7-${{ matrix.java }} + + - name: Inflate target directories (3.3.7) + run: | + tar xf targets.tar + rm targets.tar + + - name: Download target directories (2.13.18) + uses: actions/download-artifact@v6 + with: + name: target-${{ matrix.os }}-2.13.18-${{ matrix.java }} + + - name: Inflate target directories (2.13.18) + run: | + tar xf targets.tar + rm targets.tar + + - name: Publish project + run: sbt +publish diff --git a/project/build.properties b/project/build.properties index 01a16ed..c605beb 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.7 +sbt.version=1.12.3