diff --git a/.github/workflows/comment-commands.yml b/.github/workflows/comment-commands.yml new file mode 100644 index 000000000..f043709d7 --- /dev/null +++ b/.github/workflows/comment-commands.yml @@ -0,0 +1,21 @@ +name: Slash Command Dispatch +on: + issue_comment: + types: [created] +jobs: + slashCommandDispatch: + runs-on: ubuntu-latest + steps: + - name: Slash Command Dispatch + id: scd + uses: peter-evans/slash-command-dispatch@v4 + with: + token: ${{ secrets.SLASH_COMMANDS_PAT }} + issue-type: pull-request + dispatch-type: repository + permission: write + commands: | + test-server + static-args: | + repository=${{ github.repository }} + comment-id=${{ github.event.comment.id }} \ No newline at end of file diff --git a/.github/workflows/publish-testserver.yml b/.github/workflows/publish-testserver.yml new file mode 100644 index 000000000..d9cdebc5c --- /dev/null +++ b/.github/workflows/publish-testserver.yml @@ -0,0 +1,39 @@ +name: Publish PR Docker Image +on: + pull_request: + types: [opened] + issue_comment: + types: [created] +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Set variables + id: prep + run: | + 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: + 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/publish.yaml b/.github/workflows/publish.yml similarity index 100% rename from .github/workflows/publish.yaml rename to .github/workflows/publish.yml diff --git a/.github/workflows/test-server-command.yml b/.github/workflows/test-server-command.yml new file mode 100644 index 000000000..2a79c24f9 --- /dev/null +++ b/.github/workflows/test-server-command.yml @@ -0,0 +1,37 @@ +name: Publish PR Docker Image +on: + repository_dispatch: + types: [test-server-command] +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Dump the client payload context + env: + PAYLOAD_CONTEXT: ${{ toJson(github.event.client_payload) }} + run: echo "$PAYLOAD_CONTEXT" + - name: Checkout + uses: actions/checkout@v2 + with: + ref: ${{ github.event.client_payload.pull_request.head.sha }} + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Set variables + id: prep + run: | + DOCKER_IMAGE=test-server + REPOSITORY="$(echo $GITHUB_REPOSITORY | tr '[:upper:]' '[:lower:]')" # Repository name must be lowercase in image tags + TAGS="ghcr.io/${REPOSITORY}/${DOCKER_IMAGE}:${{ github.event.client_payload.pull_request.head.sha }}" + echo ::set-output name=tags::${TAGS} + - name: Log in to GitHub Docker Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build container image + uses: docker/build-push-action@v2 + with: + context: . + 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 3c26f36c0..62e9551cb 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,9 +1,11 @@ name: Test on: push: + paths-ignore: .github\workflows branches: - master pull_request: + paths-ignore: .github\workflows types: [ opened, reopened, synchronize ] jobs: test: