diff --git a/.github/workflows/laravel-alpha.yml b/.github/workflows/laravel-alpha.yml new file mode 100644 index 00000000..43461b84 --- /dev/null +++ b/.github/workflows/laravel-alpha.yml @@ -0,0 +1,82 @@ +name: Dev + +on: + push: + branches: [ dev ] + +jobs: + laravel-tests: + + runs-on: ubuntu-latest + + steps: + - uses: shivammathur/setup-php@b7d1d9c9a92d8d8463ce36d7f60da34d461724f8 + with: + php-version: '7.4' + - uses: actions/checkout@v2 + - name: Copy .env + run: php -r "file_exists('.env') || copy('.env.example', '.env');" + - name: Update .env with secrets + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} + TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} + HEALTHCHECKS_UUID: ${{ secrets.HEALTHCHECKS_UUID }} + run: | + echo SLACK_WEBHOOK=$SLACK_WEBHOOK >> .env + echo TELEGRAM_BOT_TOKEN=$TELEGRAM_BOT_TOKEN >> .env + echo TELEGRAM_CHAT_ID=$TELEGRAM_CHAT_ID >> .env + echo HEALTHCHECKS_UUID=$HEALTHCHECKS_UUID >> .env + - name: Install Dependencies + run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist + - name: Create Database + run: | + mkdir -p database + touch database/database.sqlite + - name: Generate key + env: + DB_CONNECTION: sqlite + DB_DATABASE: database/database.sqlite + run: php artisan key:generate + - name: Generate JWT key + env: + DB_CONNECTION: sqlite + DB_DATABASE: database/database.sqlite + run: php artisan jwt:secret + - name: Directory Permissions + run: chmod -R 777 storage bootstrap/cache + - name: Download Speedtest binary + run: wget https://install.speedtest.net/app/cli/ookla-speedtest-1.0.0-x86_64-linux.tgz -O speedtest.tgz && tar zxvf speedtest.tgz && mv speedtest app/Bin/ + - name: Accept EULA + env: + DB_CONNECTION: sqlite + DB_DATABASE: database/database.sqlite + run: php artisan speedtest:eula + - name: Execute tests (Unit and Feature tests) via PHPUnit + env: + DB_CONNECTION: sqlite + DB_DATABASE: database/database.sqlite + run: vendor/bin/phpunit + + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Docker Setup Buildx + uses: docker/setup-buildx-action@v1.2.0 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + file: ./docker/Dockerfile + platforms: linux/amd64,linux/arm64,linux/arm/v7 + push: true + tags: henrywhitaker3/speedtest:dev