This is an automated email from the ASF dual-hosted git repository. tvb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/buildstream-plugins.git
commit 1c51f01175b245c3e1d3fb38af3618df0db1a3c7 Author: Tristan van Berkom <[email protected]> AuthorDate: Fri Mar 25 14:53:30 2022 +0900 .github/workflows: Adding the ci/merge/release workflows --- .github/workflows/ci.yml | 81 ++++++++++++++++++++++++++++++++++++++++++++ .github/workflows/merge.yml | 82 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..7017a26 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,81 @@ +name: PR Checks + +# Pre-merge CI to run on push and pull_request events, even if this seems +# redundant, we avoid concurrency with the below configuration. +# +on: + pull_request: + workflow_dispatch: + +# Use the concurrency feature to ensure we don't run redundant workflows +# +concurrency: + group: ${{ github.repository }}-${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +# Left to-do: +# - coverage +# - publishing docs to gh-pages +# - persistent artifact cache +# - overnight jobs +# - wsl tasks (TODO: Check if GitHub's Windows runners allow WSL) +# +# New opportunities: +# - run tests on mac (GitHub provides MacOS runners) +# - standardize WSL tasks by using GitHub-provided runners + +jobs: + tests: + runs-on: ubuntu-20.04 + continue-on-error: ${{ matrix.allow-failure || false }} + + strategy: + fail-fast: false + matrix: + + # The names here should map to a valid service defined in + # "../compose/ci.docker-compose.yml" + test-name: + - debian-10 + - fedora-34 + - fedora-35 + - fedora-missing-deps + - lint + - mypy + + include: + - test-name: bst-master + allow-failure: true + + steps: + - name: Check out repository + uses: actions/checkout@v2 + # BuildStream requires tags to be able to find its version. + with: + fetch-depth: 0 + + - name: Run tests with Docker Compose + run: | + ${GITHUB_WORKSPACE}/.github/run-ci.sh ${{ matrix.test-name }} + + docs: + runs-on: ubuntu-20.04 + steps: + - name: Check out repository + uses: actions/checkout@v2 + # BuildStream requires tags to be able to find its version. + with: + fetch-depth: 0 + + - name: Give `testuser` ownership of the source directory + run: sudo chown -R 1000:1000 ${GITHUB_WORKSPACE} + + - name: Build documentation using Docker Compose + run: | + ${GITHUB_WORKSPACE}/.github/run-ci.sh docs + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: docs + path: doc/build/html diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml new file mode 100644 index 0000000..8bb492e --- /dev/null +++ b/.github/workflows/merge.yml @@ -0,0 +1,82 @@ +name: Merge actions + +on: + push: + branches: + - master + +jobs: + build: + name: Build documentation + runs-on: ubuntu-20.04 + steps: + - name: Checkout code + uses: actions/checkout@v2 + # BuildStream requires tags to be able to find its version. + with: + fetch-depth: 0 + + - name: Give `testuser` ownership of the source directory + run: sudo chown -R 1000:1000 ${GITHUB_WORKSPACE} + + - name: Build documentation using Docker Compose + run: | + ${GITHUB_WORKSPACE}/.github/run-ci.sh docs + + # Restore permissions to the current user + sudo chown -R ${USER} ${GITHUB_WORKSPACE} + + # Include a tarball in the published docs, allowing for + # easy re-publishing of master docs on docs.buildstream.build + tar -C doc/build/html -zcf docs.tgz . + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: docs + path: | + doc/build/html + docs.tgz + + publish: + needs: build + runs-on: ubuntu-20.04 + steps: + + - name: Download artifact + uses: actions/download-artifact@v2 + with: + name: docs + path: docs + + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: gh-pages + path: pages + fetch-depth: 0 + + - name: Update repo + run: | + + # First reset the branch state to the initial commit, this ensures that + # we do not pollute the repository with the history of every docs package + # we've ever published (history of docs packages for major releases is + # also stored as GitHub release assets) + # + cd pages/ + git reset --hard GH_PAGES_FIRST_COMMIT + + # Copy the docs asset over and overwrite the orphan gh-pages branch, ensure + # that we disable GitHub's jekyll by creating the .nojekyll file, otherwise + # it will interfere with the rendering of the site. + # + cp -a ../docs/doc/build/html/* . + cp -a ../docs/docs.tgz . + touch .nojekyll + + git add . + git config --local user.email "merge-ci@ponyland" + git config --local user.name "Github Actions Nightly Job" + git commit -m "Update repo for docs build $GITHUB_RUN_NUMBER" + git push --force "https://$GITHUB_ACTOR:[email protected]/$GITHUB_REPOSITORY.git" gh-pages
