diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml new file mode 100644 index 00000000..20554ae5 --- /dev/null +++ b/.github/workflows/publish-docs.yml @@ -0,0 +1,30 @@ +name: Publish Docs +on: + push: + branches: + - master +jobs: + docs: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Cache SBT + uses: actions/cache@v2 + with: + path: | + ~/.ivy2/cache + ~/.sbt + key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }} + - name: Checkout + uses: actions/checkout@v2 + - name: Setup Scala + uses: olafurpg/setup-scala@v12 + - name: Build docs + run: sbt docs/unidoc + - name: Deploy to GitHub Pages + uses: JamesIves/github-pages-deploy-action@4.1.4 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BRANCH: gh-pages + FOLDER: docs/target/scala-2.13/unidoc diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index a3556bd1..1942c79e 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,48 +1,38 @@ -name: Publish -on: [push] +name: Publish Docker Image +on: + push: + branches: + - master jobs: - docs: - if: github.ref == 'refs/heads/master' - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Cache SBT - uses: actions/cache@v2 - with: - path: | - ~/.ivy2/cache - ~/.sbt - key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }} - - name: Checkout - uses: actions/checkout@v2 - - name: Setup Scala - uses: olafurpg/setup-scala@v12 - - name: Build docs - run: sbt docs/unidoc - - name: Deploy to GitHub Pages - uses: JamesIves/github-pages-deploy-action@4.1.4 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages - FOLDER: docs/target/scala-2.13/unidoc - docker: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Inject slug/short variables - uses: rlespinasse/github-slug-action@v2.x + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 - name: Set variables + id: prep run: | - echo "REPOSITORY=$(echo $GITHUB_REPOSITORY | tr '[A-Z]' '[a-z]')" >> $GITHUB_ENV - - name: Build and push Docker image - uses: docker/build-push-action@v2.5.0 + DOCKER_IMAGE=server + 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. + fi + + TAGS="ghcr.io/${REPOSITORY}/${DOCKER_IMAGE}:${GITHUB_SHA}" + 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} + - name: Log in to GitHub Docker Registry + uses: docker/login-action@v1 with: - username: ${{ github.actor }} - password: ${{ github.token }} - registry: docker.pkg.github.com - repository: ${{ env.REPOSITORY }}/server - tag_with_sha: true - tag_with_ref: true \ No newline at end of file + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build container image + uses: docker/build-push-action@v2 + with: + push: true + tags: ${{ steps.prep.outputs.tags }} \ No newline at end of file diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index ea2083f0..bba53b3c 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,5 +1,10 @@ name: Test -on: [push, pull_request] +on: + push: + branches: + - master + pull_request: + types: [ opened, reopened, synchronize ] jobs: test: runs-on: ubuntu-latest diff --git a/Dockerfile b/Dockerfile index 2e91bbcd..f45bff7c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,8 +10,8 @@ FROM openjdk:18-slim COPY --from=builder /PSF-LoginServer/server/target/pack/ /usr/local -EXPOSE 51000 -EXPOSE 51001 -EXPOSE 51002 +EXPOSE 51000/udp +EXPOSE 51001/udp +EXPOSE 51002/tcp CMD ["psforever-server"]