diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..ffe20a0 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,90 @@ +name: Build + +on: + push: + branches: master + pull_request: + branches: '*' + +jobs: + build: + name: Build tljh_repo2docker + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Install Conda environment with Micromamba + uses: mamba-org/setup-micromamba@v1 + with: + environment-name: tljh + create-args: >- + python=3.10 + nodejs=18 + yarn=3 + + - name: Setup pip cache + uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: pip-3.10-${{ hashFiles('setup.py') }} + restore-keys: | + pip-3.10- + pip- + + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + + - name: Setup yarn cache + uses: actions/cache@v2 + id: yarn-cache + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: yarn-${{ hashFiles('frontend/yarn.lock') }} + restore-keys: | + yarn- + + - name: Package the application + shell: bash -l {0} + run: | + set -eux + pip install build + python -m build . + + - name: Upload package + uses: actions/upload-artifact@v3 + with: + name: tljh_repo2docker-artifacts + path: | + dist/tljh_repo2docker*.whl + if-no-files-found: error + + test_isolated: + needs: build + runs-on: ubuntu-latest + + steps: + - name: Install Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + architecture: 'x64' + + - uses: actions/download-artifact@v3 + with: + name: tljh_repo2docker-artifacts + + - name: Install and Test + run: | + set -eux + # Remove NodeJS, twice to take care of system and locally installed node versions. + sudo rm -rf $(which node) + sudo rm -rf $(which node) + + python -m pip install tljh_repo2docker*.whl + + - name: Test import + shell: bash -l {0} + run: python -c "import tljh_repo2docker" \ No newline at end of file