diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index c38a2a1aa..f40fb7f0b 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -3,12 +3,14 @@ on: push: branches: - master + jobs: docker: runs-on: ubuntu-latest steps: - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v3 + - name: Set variables id: prep run: | @@ -16,23 +18,25 @@ jobs: REPOSITORY="$(echo $GITHUB_REPOSITORY | tr '[:upper:]' '[:lower:]')" # Repository name must be lowercase in image tags if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then - GITHUB_SHA=$(cat $GITHUB_EVENT_PATH | jq -r .pull_request.head.sha) # GITHUB_SHA is the merge SHA, not the head commit SHA in a PR, replace it. + GITHUB_SHA=$(jq -r .pull_request.head.sha < "$GITHUB_EVENT_PATH") # GITHUB_SHA is the merge SHA, not the head commit SHA in a PR, replace it. fi TAGS="ghcr.io/${REPOSITORY}/${DOCKER_IMAGE}:${GITHUB_SHA}" - if [ "${{ github.ref }}" = "refs/heads/master" ]; then + if [ "${GITHUB_REF}" = "refs/heads/master" ]; then TAGS="$TAGS,ghcr.io/${REPOSITORY}/${DOCKER_IMAGE}:latest,ghcr.io/${REPOSITORY}/${DOCKER_IMAGE}:master" fi - echo ::set-output name=tags::${TAGS} + echo "tags=${TAGS}" >> $GITHUB_OUTPUT + - name: Log in to GitHub Docker Registry - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Build container image - uses: docker/build-push-action@v2 + + - name: Build and Push container image + uses: docker/build-push-action@v5 with: push: true tags: ${{ steps.prep.outputs.tags }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 3c26f36c0..6d3e961cf 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -24,29 +24,36 @@ jobs: - 5432:5432 steps: - name: Cache SBT - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | ~/.ivy2/cache ~/.sbt key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }} + - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 + - name: Setup Scala uses: coursier/setup-action@v1 with: jvm: adopt:11 - apps: sbtn + apps: sbt + - name: Run migrations run: sbt "server/run migrate" + - name: Run build run: sbt server/packArchiveZip + - name: Run tests run: sbt coverage test:compile quiet:test coverageReport + - name: Upload coverage run: bash <(curl -s https://codecov.io/bash) + - name: Upload artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: server.zip path: server/target/psforever-server-*.zip