Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH Actions: Test Windows with WSL #30216

Closed
mkoeppe opened this issue Jul 25, 2020 · 41 comments
Closed

GH Actions: Test Windows with WSL #30216

mkoeppe opened this issue Jul 25, 2020 · 41 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Jul 25, 2020

https://groups.google.com/d/msg/sage-devel/vC0ySd4HGeQ/RBA_XrqLBAAJ

CC: @dimpase @tobiasdiez @embray

Component: porting

Author: Tobias Diez

Branch/Commit: e8a984b

Reviewer: Matthias Koeppe

Issue created by migration from https://trac.sagemath.org/ticket/30216

@tobiasdiez
Copy link
Contributor

comment:2

Something like the following?
https://github.com/tobiasdiez/sage/blob/patch-2/.github/workflows/build.yml

The bootstrap command fails currently, https://github.com/tobiasdiez/sage/runs/1051391795?check_suite_focus=true any idea why?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Aug 31, 2020

comment:3

Looks like whitespace in PATH and insufficient quoting somewhere

@tobiasdiez
Copy link
Contributor

comment:5

Thanks @mkoeppe, it was indeed missing quotes. After a lot of trial and error, it seems to work now (at least the build runs now for almost 2h already).

Let me know if there is something else to do:
#97
If not then I'll move the PR to trac.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 1, 2020

comment:6

Please rename build.yml to something more specific - perhaps ci-wsl.yml

Also, please replace the hardcoded Ubuntu package lists by using the debian*.txt files in build/pkgs, following these examples:

$ grep  'PACKAGES=`sed' tox.ini
    homebrew:      bash -c 'PACKAGES=`sed "s/#.*//;" build/pkgs/homebrew*.txt`; {env:HOMEBREW}/bin/brew install $PACKAGES; {env:HOMEBREW}/bin/brew upgrade $PACKAGES'
    homebrew-standard:   bash -c 'PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/homebrew.txt`; {env:HOMEBREW}/bin/brew install $PACKAGES; {env:HOMEBREW}/bin/brew upgrade $PACKAGES'
    homebrew-maximal:    bash -c 'PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/homebrew.txt`; {env:HOMEBREW}/bin/brew install $PACKAGES; {env:HOMEBREW}/bin/brew upgrade $PACKAGES'
    local-conda:   bash -c 'PACKAGES=`sed "s/#.*//;" build/pkgs/conda*.txt`; {env:SETENV} && {env:CONDA_PREFIX}/bin/conda install --yes --quiet $PACKAGES'
    local-conda-standard:  bash -c 'PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/conda.txt`; {env:SETENV} && {env:CONDA_PREFIX}/bin/conda install --yes --quiet $PACKAGES'
    local-conda-maximal:   bash -c 'PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/conda.txt`; {env:SETENV} && {env:CONDA_PREFIX}/bin/conda install --yes --quiet $PACKAGES'

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 1, 2020

comment:7

BTW, the build errored with

[ecl-20.4.24.p1] /usr/include/stdio.h:864:11: fatal error: ../ecl/gc/bits/stdio.h: Invalid argument

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 1, 2020

comment:8

And you could use the steps starting with "Build and test with tox" from the job local-macos-nohomebrew defined in tox.yml

@tobiasdiez
Copy link
Contributor

comment:9

Thanks for the feedback.

Replying to @mkoeppe:

Please rename build.yml to something more specific - perhaps ci-wsl.yml

I was thinking about adding basic builds (and doctests) for ubuntu-latest and macos-latest as well, so that this workflow serves as a basic check that the build works on all os. If this is not intended, I'll rename the file.

Also, please replace the hardcoded Ubuntu package lists by using the debian*.txt files in build/pkgs, following these examples:

Done!

BTW, the build errored with

No idea why. I've read somewhere that there might be a problem parallel make (e.g make -j8). I triggered a build now with j1, let's see if it works.

And you could use the steps starting with "Build and test with tox" from the job local-macos-nohomebrew defined in tox.yml

What exactly do you mean? This workflow is about homebrew, and I'm not sure how this translates to WSL.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 2, 2020

comment:10

These steps:

      - name: Build and test with tox
        # We use a high parallelization on purpose in order to catch possible parallelization bugs in the build scripts.
        # For doctesting, we use a lower parallelization to avoid timeouts.
        run: |
          MAKE="make -j12" tox -e $TOX_ENV -- SAGE_NUM_THREADS=4 $TARGETS

Set TOX_ENV to just local, and it will take care of bootstrap, configure, make

      - name: Prepare logs artifact
        run: |
          mkdir -p "artifacts/$LOGS_ARTIFACT_NAME"; cp -r .tox/*/log "artifacts/$LOGS_ARTIFACT_NAME"
        if: always()
      - uses: actions/upload-artifact@v1
        with:
          path: artifacts
          name: ${{ env.LOGS_ARTIFACT_NAME }}
        if: always()
      - name: Print out logs for immediate inspection
        # and markup the output with GitHub Actions logging commands
        run: |
          .github/workflows/scan-logs.sh "artifacts/$LOGS_ARTIFACT_NAME"
        if: always()

These steps package up and print logs.

@tobiasdiez
Copy link
Contributor

comment:11

Thanks, that's now implemnted. But how do I now pass --enable-build-as-root to configure? Everything in WSL is run as root so this is needed.

Moreover, I'm not sure if the the upload of the logs is really necessary as you can already download logs from a github action session by clicking the hamburger menu of the workflow run (e.g on https://github.com/tobiasdiez/sage/runs/1062527848?check_suite_focus=true)

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 2, 2020

comment:12

Use EXTRA_CONFIGURE_ARGS

@tobiasdiez
Copy link
Contributor

comment:13

Thanks. I tried it via export EXTRA_CONFIGURE_ARGS='--enable-build-as-root' but that doesn't seem to work (still complains that it cannot run as root)

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 3, 2020

comment:14

I see in the github log: wsl export EXTRA_CONFIGURE_ARGS='--enable-build-as-root' - that probably will only set it in a shell and then exit immediately.

Try instead wsl env EXTRA_CONFIGURE_ARGS='--enable-build-as-root' tox -e local -- SAGE_NUM_THREADS=4 build

@tobiasdiez
Copy link
Contributor

comment:15

That sadly also doesn't wored, but I've now found a way using shared env variables between Windows and WSL.

Let's see what kind of build errors we encounter this time ;-).
The previous build (https://github.com/tobiasdiez/sage/runs/1062488288?check_suite_focus=true without tox) stopped with

2020-09-02T21:14:28.9292553Z [sagelib-9.2.beta10] copying ./sage/rings/polynomial/polynomial_integer_dense_flint.pxd -> build/lib.linux-x86_64-3.7/sage/rings/polynomial
2020-09-02T21:14:28.9302991Z [sagelib-9.2.beta10] copying ./sage/rings/polynomial/polynomial_integer_dense_flint.pyx -> build/lib.linux-x86_64-3.7/sage/rings/polynomial
2020-09-02T21:14:28.9314076Z [sagelib-9.2.beta10] copying ./sage/rings/polynomial/polynomial_integer_dense_ntl.pxd -> build/lib.linux-x86_64-3.7/sage/rings/polynomial
2020-09-02T21:14:28.9326509Z [sagelib-9.2.beta10] copying ./sage/rings/polynomial/polynomial_integer_dense_ntl.pyx -> build/lib.linux-x86_64-3.7/sage/rings/polynomial
2020-09-02T21:14:28.9326783Z [sagelib-9.2.beta10] error: could not open './sage/rings/polynomial/polynomial_integer_dense_ntl.pyx': Invalid argument

Any ideas what the problem is here?

Moreover, should the following packages be installed via apt-get as recommended? Should I add them to the debian.txt?

configure: hint: installing the following system packages is recommended and may avoid building some of the above SPKGs from source:
configure:   $ sudo apt-get update 
  $ sudo apt-get install libflint-arb-dev libboost-dev libboost-dev libbrial-dev libbrial-groebner-dev libbz2-dev bzip2 coinor-cbc coinor-libcbc-dev libcdd-dev libcdd-tools cliquer libcliquer-dev cmake curl libcurl4-openssl-dev libec-dev eclib-tools gmp-ecm libecm-dev fflas-ffpack libflint-dev flintqs libfreetype6-dev libgf2x-dev gfan gfortran libgivaro-dev glpk-utils libglpk-dev pari-gp2c libgsl-dev libiml-dev libisl-dev lcalc liblfunction-dev libatomic-ops-dev libbraiding-dev libffi-dev libgd-dev liblrcalc-dev libm4rie-dev libmpc-dev libmpfi-dev libmpfr-dev nauty libncurses5-dev ninja-build libntl-dev libopenblas-dev palp pandoc pari-gp2c libpari-dev pari-doc pari-elldata pari-galdata pari-galpol pari-seadata libpcre3-dev libxml-libxslt-perl libxml-writer-perl libxml2-dev libperl-dev libfile-slurp-perl libjson-perl libsvg-perl libterm-readkey-perl libterm-readline-gnu-perl libmongodb-perl libterm-readline-gnu-perl libplanarity-dev planarity libppl-dev ppl-dev python3.7 libpython3.7-dev python3-distutils r-b...

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 3, 2020

comment:16

Replying to @mkoeppe:

Try instead wsl env EXTRA_CONFIGURE_ARGS='--enable-build-as-root' tox -e local -- SAGE_NUM_THREADS=4 build

Note - no semicolon. env VAR1=VALUE1 VAR2=VALUE COMMAND...

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 3, 2020

comment:17

Replying to @tobiasdiez:

Moreover, should the following packages be installed via apt-get as recommended? Should I add them to the debian.txt?

configure: hint: installing the following system packages is recommended and may avoid building some of the above SPKGs from source:
configure:   $ sudo apt-get update 
  $ sudo apt-get install libflint-arb-dev libboost-dev libboost-dev libbrial-dev libbrial-groebner-dev libbz2-dev bzip2 coinor-cbc coinor-libcbc-dev libcdd-dev libcdd-tools cliquer libcliquer-dev cmake curl libcurl4-openssl-dev libec-dev eclib-tools gmp-ecm libecm-dev fflas-ffpack libflint-dev flintqs libfreetype6-dev libgf2x-dev gfan gfortran libgivaro-dev glpk-utils libglpk-dev pari-gp2c libgsl-dev libiml-dev libisl-dev lcalc liblfunction-dev libatomic-ops-dev libbraiding-dev libffi-dev libgd-dev liblrcalc-dev libm4rie-dev libmpc-dev libmpfi-dev libmpfr-dev nauty libncurses5-dev ninja-build libntl-dev libopenblas-dev palp pandoc pari-gp2c libpari-dev pari-doc pari-elldata pari-galdata pari-galpol pari-seadata libpcre3-dev libxml-libxslt-perl libxml-writer-perl libxml2-dev libperl-dev libfile-slurp-perl libjson-perl libsvg-perl libterm-readkey-perl libterm-readline-gnu-perl libmongodb-perl libterm-readline-gnu-perl libplanarity-dev planarity libppl-dev ppl-dev python3.7 libpython3.7-dev python3-distutils r-b...

Take a look at tox.ini and build/bin/write-dockerfile.sh. We define and test 3 configurations, minimal, standard and maximal. In the minimal configuration, only the packages from debian.txt and debian-bootstrap.txt are installed. The other two configurations also use packages from build/pkgs/*/distros/debian.txt.
(See https://doc.sagemath.org/html/en/developer/portability_testing.html#automatic-docker-based-build-testing-using-tox)

@tobiasdiez
Copy link
Contributor

comment:18

Replying to @mkoeppe:

Replying to @mkoeppe:

Try instead wsl env EXTRA_CONFIGURE_ARGS='--enable-build-as-root' tox -e local -- SAGE_NUM_THREADS=4 build

Note - no semicolon. env VAR1=VALUE1 VAR2=VALUE COMMAND...

That doesn't work, as wsl only accept one command as an argument. But I think the current solution with the env statement in the action is cleaner anyway.

@tobiasdiez
Copy link
Contributor

comment:19

Replying to @mkoeppe:

Replying to @tobiasdiez:

Moreover, should the following packages be installed via apt-get as recommended? Should I add them to the debian.txt?

configure: hint: installing the following system packages is recommended and may avoid building some of the above SPKGs from source:
configure:   $ sudo apt-get update 
  $ sudo apt-get install libflint-arb-dev libboost-dev libboost-dev libbrial-dev libbrial-groebner-dev libbz2-dev bzip2 coinor-cbc coinor-libcbc-dev libcdd-dev libcdd-tools cliquer libcliquer-dev cmake curl libcurl4-openssl-dev libec-dev eclib-tools gmp-ecm libecm-dev fflas-ffpack libflint-dev flintqs libfreetype6-dev libgf2x-dev gfan gfortran libgivaro-dev glpk-utils libglpk-dev pari-gp2c libgsl-dev libiml-dev libisl-dev lcalc liblfunction-dev libatomic-ops-dev libbraiding-dev libffi-dev libgd-dev liblrcalc-dev libm4rie-dev libmpc-dev libmpfi-dev libmpfr-dev nauty libncurses5-dev ninja-build libntl-dev libopenblas-dev palp pandoc pari-gp2c libpari-dev pari-doc pari-elldata pari-galdata pari-galpol pari-seadata libpcre3-dev libxml-libxslt-perl libxml-writer-perl libxml2-dev libperl-dev libfile-slurp-perl libjson-perl libsvg-perl libterm-readkey-perl libterm-readline-gnu-perl libmongodb-perl libterm-readline-gnu-perl libplanarity-dev planarity libppl-dev ppl-dev python3.7 libpython3.7-dev python3-distutils r-b...

Take a look at tox.ini and build/bin/write-dockerfile.sh. We define and test 3 configurations, minimal, standard and maximal. In the minimal configuration, only the packages from debian.txt and debian-bootstrap.txt are installed. The other two configurations also use packages from build/pkgs/*/distros/debian.txt.
(See https://doc.sagemath.org/html/en/developer/portability_testing.html#automatic-docker-based-build-testing-using-tox)

Ok, but this is not really reusable, right? So I would propose to add the additional dependencies as hard coded in the github action. Improving on this point I would leave for a new PR. Ok?

@tobiasdiez
Copy link
Contributor

comment:20

Moreover, the MAKEFLAGS env variable is overwritten by tox -e local. Is this by design, or a bug? As far as I know the solution via alias make = make -j2 is not recommended because it changes the make command globally (not a concern for the GH workflow, but in general). Since there are anyways problems with running WSL in parallel mode, I leave this also for further work.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 3, 2020

comment:21

A one-line approximation of standard and maximal is:

PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/debian.txt`

Please don't hard-code package lists.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 3, 2020

comment:22

Replying to @tobiasdiez:

Moreover, the MAKEFLAGS env variable is overwritten by tox -e local. Is this by design, or a bug? As far as I know the solution via alias make = make -j2 is not recommended because it changes the make command globally (not a concern for the GH workflow, but in general).

The recommendation in Sage currently is to use the environment setting MAKE="make -j2". tox passes on MAKE (see passenv in tox.ini`)

@tobiasdiez
Copy link
Contributor

comment:23

Replying to @mkoeppe:

A one-line approximation of standard and maximal is:

PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/debian.txt`

Please don't hard-code package lists.

I've now used the powershell version of this. The bootstrap and config works now, but the build fails with

  [scipy-1.5.2]       return self.get_paths(self.section, key)
  [scipy-1.5.2]     /mnt/d/a/sage/sage/.tox/local/local/lib/python3.7/site-packages/numpy/distutils/system_info.py:838: UserWarning: Specified path /usr/include/suitesparse/python3.7m is invalid.
  [scipy-1.5.2]       return self.get_paths(self.section, key)
  [scipy-1.5.2]     error: Command "gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fdebug-prefix-map=/build/python3.7-n1NpHY/python3.7-3.7.9=. -fstack-protector-strong -Wformat -Werror=format-security -g -fdebug-prefix-map=/build/python3.7-n1NpHY/python3.7-3.7.9=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DNO_ATLAS_INFO=1 -DHAVE_CBLAS -I/usr/include/x86_64-linux-gnu/openblas-pthread/ -I/tmp/pip-req-build-kps_f__m/scipy/special -I/mnt/d/a/sage/sage/.tox/local/local/lib/python3.7/site-packages/numpy/core/include -I/usr/include/python3.7m -Iscipy/_lib -I/mnt/d/a/sage/sage/.tox/local/local/lib/python3.7/site-packages/numpy/core/include -I/mnt/d/a/sage/sage/.tox/local/local/lib/python3.7/site-packages/numpy/core/include -I/mnt/d/a/sage/sage/.tox/local/local/lib/python3.7/site-packages/numpy/core/include -I/mnt/d/a/sage/sage/.tox/local/local/include -I/usr/include/python3.7m -c scipy/special/cython_special.c -o build/temp.linux-x86_64-3.7/scipy/special/cython_special.o -MMD -MF build/temp.linux-x86_64-3.7/scipy/special/cython_special.o.d" failed with exit status 1
  [scipy-1.5.2]     Building wheel for scipy (PEP 517): finished with status 'error'
  [scipy-1.5.2]     ERROR: Failed building wheel for scipy
  [scipy-1.5.2]   Failed to build scipy
  [scipy-1.5.2]   ERROR: Could not build wheels for scipy which use PEP 517 and cannot be installed directly
  [scipy-1.5.2]   Exception information:
  [scipy-1.5.2]   Traceback (most recent call last):
  [scipy-1.5.2]     File "/mnt/d/a/sage/sage/.tox/local/local/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 188, in _main
  [scipy-1.5.2]       status = self.run(options, args)
  [scipy-1.5.2]     File "/mnt/d/a/sage/sage/.tox/local/local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 185, in wrapper
  [scipy-1.5.2]       return func(self, options, args)
  [scipy-1.5.2]     File "/mnt/d/a/sage/sage/.tox/local/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 378, in run
  [scipy-1.5.2]       ", ".join(r.name for r in pep517_build_failures)))
  [scipy-1.5.2]   pip._internal.exceptions.InstallationError: Could not build wheels for scipy which use PEP 517 and cannot be installed directly
  [scipy-1.5.2]   Removed build tracker: '/tmp/pip-req-tracker-_k7u0ca_'
  [scipy-1.5.2]   Error: installing with pip3 failed

https://github.com/tobiasdiez/sage/runs/1067282589?check_suite_focus=true
Any ideas what causes this?

The github action workflow is finished from my point of view. Should I convert it to a trac branch, and then leave fixing the build issues for another ticket?

@tobiasdiez
Copy link
Contributor

Commit: b6147ee

@tobiasdiez
Copy link
Contributor

Branch: public/build/ghWSL

@tobiasdiez
Copy link
Contributor

comment:24

So this is now ready for review.

Sadly it still doesn't build correctly. The current error message is

cd '/mnt/d/a/sage/sage/build/pkgs/sagelib' && . '/mnt/d/a/sage/sage/src/bin/sage-env-config' && . '/mnt/d/a/sage/sage/src/bin/sage-env' && . '/mnt/d/a/sage/sage/build/bin/sage-build-env-config' && sage-logger -p '/mnt/d/a/sage/sage/build/pkgs/sagelib/spkg-install' '/mnt/d/a/sage/sage/logs/pkgs/sagelib-9.2.beta10.log'
[sagelib-9.2.beta10] installing. Log file: /mnt/d/a/sage/sage/logs/pkgs/sagelib-9.2.beta10.log
....
  [sagelib-9.2.beta10]   copying ./sage/libs/gap/element.pxd -> build/lib.linux-x86_64-3.7/sage/libs/gap
  [sagelib-9.2.beta10]   copying ./sage/libs/gap/element.pyx -> build/lib.linux-x86_64-3.7/sage/libs/gap
  [sagelib-9.2.beta10]   copying ./sage/libs/gap/gap_includes.pxd -> build/lib.linux-x86_64-3.7/sage/libs/gap
  [sagelib-9.2.beta10]   copying ./sage/libs/gap/libgap.pyx -> build/lib.linux-x86_64-3.7/sage/libs/gap
  [sagelib-9.2.beta10]   copying ./sage/libs/gap/util.pxd -> build/lib.linux-x86_64-3.7/sage/libs/gap
  [sagelib-9.2.beta10]   copying ./sage/libs/gap/util.pyx -> build/lib.linux-x86_64-3.7/sage/libs/gap
  [sagelib-9.2.beta10]   creating build/lib.linux-x86_64-3.7/sage/libs/giac
  [sagelib-9.2.beta10]   copying ./sage/libs/giac/auto-methods.pxi -> build/lib.linux-x86_64-3.7/sage/libs/giac
  [sagelib-9.2.beta10]   error: can't copy './sage/libs/giac/giac.pxd': doesn't exist or not a regular file

If somebody can explain to me why these cython files need to be copied to the build folder, I'll have a look a this problem in a follow-up ticket.

Moreover, it would be very helpful for further testing if the github actions could be activated for the sagemirror repo as well. Then I wouldn't need to create a PR at github first, but instead can directly test the action via trac.


Last 10 new commits:

ec4ae16Update debian.txt
d0ef390Update debian.txt
5b6a994Install all packages
d999312Fix command
72bda7aUse make instead of makeflags
f5938aeUpdate build.yml
7cf7345Update build.yml
d1fa1b7Update build.yml
f9a1eefCorrect makeflags > make
b6147eeUpdate build.yml

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 4, 2020

Reviewer: Matthias Koeppe

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 4, 2020

comment:25

Thanks a lot for this contribution.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 4, 2020

Author: Tobias Diez

@mkoeppe mkoeppe added this to the sage-9.2 milestone Sep 4, 2020
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 4, 2020

comment:26

Replying to @tobiasdiez:

it would be very helpful for further testing if the github actions could be activated for the sagemirror repo as well. Then I wouldn't need to create a PR at github first, but instead can directly test the action via trac.

My workflow is to keep the branch on trac and just push a temporary tag to my personal github fork of the repository.

@dimpase
Copy link
Member

dimpase commented Sep 4, 2020

comment:27

Replying to @mkoeppe:

Replying to @tobiasdiez:

it would be very helpful for further testing if the github actions could be activated for the sagemirror repo as well. Then I wouldn't need to create a PR at github first, but instead can directly test the action via trac.

My workflow is to keep the branch on trac and just push a temporary tag to my personal github fork of the repository.

github Actions on sagemirror are disabled, as it's just a mirror, and not even updated automatically. (I push there once in a while from a private copy of trac git repo, that's how it's supported - ideas how to automate it without running a cron job are welcome).

@dimpase
Copy link
Member

dimpase commented Sep 4, 2020

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 4, 2020

comment:29

That's now #30506

@tobiasdiez
Copy link
Contributor

comment:30

Replying to @dimpase:

Replying to @mkoeppe:

Replying to @tobiasdiez:

it would be very helpful for further testing if the github actions could be activated for the sagemirror repo as well. Then I wouldn't need to create a PR at github first, but instead can directly test the action via trac.

My workflow is to keep the branch on trac and just push a temporary tag to my personal github fork of the repository.

github Actions on sagemirror are disabled, as it's just a mirror, and not even updated automatically. (I push there once in a while from a private copy of trac git repo, that's how it's supported - ideas how to automate it without running a cron job are welcome).

I see. Still, I would think it is helpful if the github actions are activated for this repo as well, especially with view towards #30404 and the idea that these github actions serve as a continuous integration check (maybe eventually replacing the patchbot). I think there are also no disadvantages to enabling the github actions there.

Concerning updating the mirror, I guess the easiest solution would be to use a trac plugin such as https://github.com/trac-hacks/trac-github. This has the advantage that one could push to github, and the trac repo is updated as well. However, I think this requires that people primarily push to github, and no longer trac.
Another solution would be to add a git post-commit hook to git repo managed by trac, as e.g. here: https://stackoverflow.com/questions/3583061/automatically-mirror-a-git-repository.
Yet another way is to use a scheduled github action that updates the mirror automatically say every 30 min.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 4, 2020

comment:31

Replying to @tobiasdiez:

Another solution would be to add a git post-commit hook to git repo managed by trac, as e.g. here: https://stackoverflow.com/questions/3583061/automatically-mirror-a-git-repository.

+1

@vbraun
Copy link
Member

vbraun commented Sep 9, 2020

comment:32

merge conflict

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 9, 2020

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

fb58320Add WSL workflow in build.yml

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 9, 2020

Changed commit from b6147ee to fb58320

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 9, 2020

comment:34

Rebased (squashed) on 9.2.beta12

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 9, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

e8a984b.github/workflows/ci-wsl.yml: Rename from build.yml

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 9, 2020

Changed commit from fb58320 to e8a984b

@tobiasdiez
Copy link
Contributor

comment:37

Thanks!

@vbraun
Copy link
Member

vbraun commented Sep 15, 2020

Changed branch from public/build/ghWSL to e8a984b

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants