From fcbea7984f3eec9e203e9c5df9b99cc44204576b Mon Sep 17 00:00:00 2001 From: David Boreham Date: Mon, 17 Apr 2023 13:11:45 -0600 Subject: [PATCH] Add github actions --- .github/workflows/publish.yml | 46 +++++++++++++++++++++++++++++++++++ .github/workflows/test.yml | 29 ++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..8dde6e41 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,46 @@ +name: Publish + +on: + push: + branches: + - main + - publish-test + +jobs: + publish: + name: "Build and publish" + runs-on: ubuntu-latest + steps: + - name: "Clone project repository" + uses: actions/checkout@v3 + - name: "Get build info" + id: build-info + run: | + build_tag=$(./scripts/create_build_tag_file.sh) + echo "build-tag=v${build_tag}" >> $GITHUB_OUTPUT + - name: "Install Python" + uses: actions/setup-python@v4 + with: + python-version: '3.8' + - name: "Print Python version" + run: python3 --version + - name: "Install shiv" + run: pip install shiv + - name: "Build local shiv package" + id: build + run: | + ./scripts/build_shiv_package.sh + result_code=$? + echo "package-file=$(ls ./package/*)" >> $GITHUB_OUTPUT + exit $result_code + - name: "Stage artifact file" + run: | + cp ${{ steps.build.outputs.package-file }} ./laconic-so + - name: "Create release" + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ steps.build-info.outputs.build-tag }} + # On the publish test branch, mark our release as a draft + # Hack using endsWith to workaround Gitea sometimes sending "publish-test" vs "refs/heads/publish-test" + draft: ${{ endsWith('publish-test', github.ref ) }} + files: ./laconic-so diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..c6284900 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,29 @@ +name: Test + +on: + pull_request: + branches: '*' + push: + branches: '*' + +jobs: + test: + name: "Run basic test suite" + runs-on: ubuntu-latest + steps: + - name: "Clone project repository" + uses: actions/checkout@v3 + - name: "Install Python" + uses: actions/setup-python@v4 + with: + python-version: '3.8' + - name: "Print Python version" + run: python3 --version + - name: "Install shiv" + run: pip install shiv + - name: "Generate build version file" + run: ./scripts/create_build_tag_file.sh + - name: "Build local shiv package" + run: ./scripts/build_shiv_package.sh + - name: "Run smoke tests" + run: ./tests/smoke-test/run-smoke-test.sh